我弹出对话框时试图显示sap.m.Select。当我按下按钮时,我的对话框正在打开。因此,当用户按下按钮时,我会动态创建sap.m.Dialog。我在这里如何在buttonPress函数中在控制器中创建对话框:
that = this;
var dialog = new Dialog({
id : 'reasonDialog',
title: 'Reason',
type: 'Message',
content: [
that.reasonTypeSelect,
new TextArea('id1Textarea', {
width: '100%',
maxLength: 100,
placeholder: 'Enter a reason explanation'
})
],
beginButton: new sap.m.Button({
text: 'Confirm',
press: function () {
MessageToast.show('Succesfully confirmed');
dialog.close();
}
}),
endButton: new sap.m.Button({
text: 'Cancel',
press: function () {
dialog.close();
}
}),
afterClose: function() {
dialog.destroy();
}
});
dialog.open();
我正在onAfterRendering函数中创建that.reasonTypeSelect,如下所示:
var oItemSelectTemplate = new sap.ui.core.Item({
key : "{key}",
text : "{value}"
});
this.reasonTypeSelect= new sap.m.Select({ id: 'selectReasonTypeId',
width:'100%',
change:'handleReasonTypeSelect'
});
this.reasonTypeSelect.setModel(this.getView().getModel());
this.reasonTypeSelect.bindAggregation("items", "/ReasonTypeList", oItemSelectTemplate);
在这里,我可以看到Select,但其中没有任何项目。
答案 0 :(得分:0)
似乎您从对话框组件中看不到您的模型,请尝试设置您的模型
oDialog.setModel(yourModel);
如果没有工作,请尝试在" onAfterRendering"回调。
onAfterRendering: function() {
var oDialog = sap.ui.getCore().byId("reasonDialog");
oDialog.setModel(this.getView().getModel("YourModel"));
}