SAPUI5 Fragment 无法打开

问题描述 投票:0回答:1

我正在尝试在 SAPUI5 中制作一个弹出窗口/片段,显示数据库中列出的注释。我知道数据库与调用一起工作得很好。当我单击应该打开片段的按钮时,没有任何反应。

控制器.js

_getDialog: function() {
    // associate controller with the fragment
    this.oCommentDialog = sap.ui.xmlfragment("really.long.destination.fragment.CommentDialog", this);
    this.getView().addDependent(this.oCommentDialog);

    // toggle compact style
    jQuery.sap.syncStyleClass("sapUiSizeCompact", this.getView(), this.oCommentDialog);
 
    //this.oCommentDialog.open;
    return this.oCommentDialog;
},

onCommentDialogPress: function(oEvent) {
    var oCommentDialog = this._getDialog();
    console.log(oCommentDialog);
    oCommentDialog.open();
}

CommentDialog.fragment.xml

<core:FragmentDefinition
    xmlns="sap.m"
    xmlns:core="sap.ui.core">
    <Popover
        title="Comments"
        class="sapUiContentPadding"
        placement="Top">
        <footer>
            <Toolbar>
                <ToolbarSpacer/>
                <Button
                    id="email"
                    text="Email"
                    press="handleEmailPress" />
            </Toolbar>
        </footer>
    </Popover>
</core:FragmentDefinition>

Here is the error i get in the console.

未捕获类型错误:oCommentDialog.open 不是函数

来自

console.log(oCommentDialog);
的错误上方的行有一个返回函数或原型。所以我知道这是有效的,或者至少我这么认为。

我已经检查过

open()
是否在代码中设置为其他内容,但事实并非如此。

javascript html fragment sapui5
1个回答
2
投票

您正在使用

Popover
,它没有
open
方法。 如果您想打开
Popover
,您需要使用
myPopover.openBy(control)

您可以在此处

找到文档

事实上,您正在尝试使用

open
,并考虑到您的变量名称,看起来您可能正在寻找 Dialog 控件。

© www.soinside.com 2019 - 2024. All rights reserved.