我在UI5应用程序中创建了一个日历,在调用tapOnDate方法时,我正在使用自定义的创建和拒绝按钮调用UI5对话框。
我必须每次手动销毁对话框以便下次使用它。见下面的代码:
oDialog1.addButton(new sap.ui.commons.Button({text: "Create",
style: sap.ui.commons.ButtonStyle.Accept,
press:function()
{
oDialog1.destroy();
oDialog1.close();
}
但是当我点击默认情况下出现一个对话框并尝试第二次选择日期的转义/取消按钮时,对话框不会显示,我知道原因,因为点击关闭(X)按钮后我需要破坏对话会话,但我的问题是如何编写这样的代码?
答案 0 :(得分:2)
更好的方法是不在每次需要时销毁并重新创建对话框,而是存储对话框的引用并改为调用该引用:
在视图中创建一个全局变量来保存对话框:
_oMyDialog : null,
然后,open
和close
事件处理程序可以是这样的:
opOpenMyDialog : function() {
if (!this._oMyDialog) {
this._oMyDialog = sap.ui.xmlfragment("com.company.fragment.MyDialog", this);
this.getView().addDependent(this._oMyDialog);
}
this._oMyDialog.open();
},
onCloseMyDialog : function() {
this._oMyDialog.close();
},
答案 1 :(得分:0)
试试这个:
oDialog1.addButton(new sap.ui.commons.Button({
text: "Create",
style: sap.ui.commons.ButtonStyle.Accept,
press: function() {
oDialog1.destroy();
oDialog1.close();
},afterClose: function() {oDialog1.destroy();}