Sapui5 onCloseDialog事件在我的控制器中不工作。什么';我的代码怎么了?

Sapui5 onCloseDialog事件在我的控制器中不工作。什么';我的代码怎么了?,sapui5,Sapui5,我正在尝试学习SAPUI5并遵循SAPUI5文档中的演练。我目前处于第17步:片段回调。我无法使onCloseDialog事件正常工作。我反复检查了代码,没有发现任何错误。Chrome的控制台中也没有错误。有什么见解吗 链接到以下指南: 我的代码用于: HelloDialog.fragment.xml <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core"> <Dialog id="helloDialog

我正在尝试学习SAPUI5并遵循SAPUI5文档中的演练。我目前处于第17步:片段回调。我无法使onCloseDialog事件正常工作。我反复检查了代码,没有发现任何错误。Chrome的控制台中也没有错误。有什么见解吗

链接到以下指南:

我的代码用于:

HelloDialog.fragment.xml

<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();
    }
});
});