我正在尝试在 SAPUI5 中制作一个弹出窗口/片段,显示数据库中列出的注释。我知道数据库与调用一起工作得很好。当我单击应该打开片段的按钮时,没有任何反应。
_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();
}
<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>
未捕获类型错误:oCommentDialog.open 不是函数
来自
console.log(oCommentDialog);
的错误上方的行有一个返回函数或原型。所以我知道这是有效的,或者至少我这么认为。
我已经检查过
open()
是否在代码中设置为其他内容,但事实并非如此。
您正在使用
Popover
,它没有 open
方法。
如果您想打开 Popover
,您需要使用 myPopover.openBy(control)
。
您可以在此处
找到文档事实上,您正在尝试使用
open
,并考虑到您的变量名称,看起来您可能正在寻找 Dialog 控件。