Sapui5 onCloseDialog事件在我的控制器中不工作。什么';我的代码怎么了?
我正在尝试学习SAPUI5并遵循SAPUI5文档中的演练。我目前处于第17步:片段回调。我无法使onCloseDialog事件正常工作。我反复检查了代码,没有发现任何错误。Chrome的控制台中也没有错误。有什么见解吗 链接到以下指南: 我的代码用于: HelloDialog.fragment.xmlSapui5 onCloseDialog事件在我的控制器中不工作。什么';我的代码怎么了?,sapui5,Sapui5,我正在尝试学习SAPUI5并遵循SAPUI5文档中的演练。我目前处于第17步:片段回调。我无法使onCloseDialog事件正常工作。我反复检查了代码,没有发现任何错误。Chrome的控制台中也没有错误。有什么见解吗 链接到以下指南: 我的代码用于: HelloDialog.fragment.xml <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core"> <Dialog id="helloDialog
<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
<Dialog id="helloDialog" title="Hello {/recipient/name}">
<content>
<core:Icon src="sap-icon://hello-world" size="8rem" class="sapUiMediumMargin"/>
</content>
<beginButton>
<Button text="{i18n>dialogCloseButtonText}" press="onCloseDialog"/>
</beginButton>
</Dialog>
从片段创建对话框时,您没有传递控制器引用。 在演练步骤中,它与对话框调用者是同一个控制器对象,因此应传递此:
oDialog=sap.ui.xmlfragment(oView.getId(),“sap.ui.demo.wt.view.HelloDialog”,这个)代码>*
用于片段中事件处理程序的控制器
API参考*
*sap.ui.*片段
已弃用!改用。这能回答你的问题吗?
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/m/MessageToast"
], function(Controller, MessageToast) {
"use strict";
return Controller.extend("sap.ui.demo.wt.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() {
var oView = this.getView();
var oDialog = oView.byId("helloDialog");
// create dialog lazily
if (!oDialog) {
// create dialog via fragment factory
oDialog = sap.ui.xmlfragment(oView.getId(), "sap.ui.demo.wt.view.HelloDialog");
oView.addDependent(oDialog);
}
oDialog.open();
},
onCloseDialog: function() {
this.getView().byId("helloDialog").close();
}
});
});