the code is from [SAP UI5 walkthrought][1] and code with brandon on youtube. I am getting this error .close is not a function. I tried different ways and couldn't find a solution.
Next.controller.js
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/m/MessageToast",
"sap/ui/core/Fragment"], function (Controller, MessageToast, Fragment) {
"use strict";
return Controller.extend("sap.ui.demo.walkthrough.controller.HelloPanel", {
onShowHello : function () {
// read msg from i18n model
var oBundle = this.getView().getModel("i18n").getResourceBundle();
var sRecipient = this.getView().getModel().getProperty("/recipient/name");
var sMsg = oBundle.getText("helloMsg", [sRecipient]);
// show message
MessageToast.show(sMsg);
},
onOpenDialog : function () {
if (!this.pDialog) {
this.pDialog = this.loadFragment({
name: "sap.ui.demo.walkthrough.view.HelloDialog"
});
}
this.pDialog.then(function(oDialog) {
oDialog.open();
});
},
onCloseDialog : function () {
// note: We don't need to chain to the pDialog promise, since this event-handler
// is only called from within the loaded dialog itself.
this.byId("HelloDialog").close();
}
});});
HelloDialog.fragment.xml
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core">
<Dialog
id="helloDialog"
title="hello {/recipient/name}">
<beginButton>
<Button
text="{i18n>dialogclose}"
press=".onCloseDialog"/>
</beginButton>
</Dialog></core:FragmentDefinition>
At last I just copied the same code yet getting the same error ".close is not a funtion" [1]: https://sapui5.hana.ondemand.com/#/topic/4da72985139b4b83b5f1c1e0c0d2ed5a
In the close
method you have written this.byId("HelloDialog").close();
but the id
of the dialog is helloDialog
.