SAPUI5 Fragment无法打开

时间:2017-08-02 16:45:20

标签: javascript html fragment sapui5

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

Controller.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>

Here is the error i get in the console.

未捕获的TypeError:oCommentDialog.open不是函数

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

我已经检查过是否看到OPEN()设置为代码中的某些内容,而不是。

1 个答案:

答案 0 :(得分:1)

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

您可以找到文档here

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