sapui5 - sap.m.MessageBox.confirm 在页面刷新时显示未定义 [F5]
问题描述
每当我使用 F5 刷新页面时,都会出现错误:
在调试中,我看到 totalRtn 有值,所以它转到 else - 当控制转到 sap.m.MessageBox.confirm 时 - 我收到一条错误消息“Uncaught TypeError: Cannot read property 'confirm' of undefined”
if (totalRtn <= 0) {
sap.m.MessageToast.show("Cannot return 0 quantity");
} else {
sap.m.MessageBox.confirm("You are returning total of " + totalRtn + " items from this order", {
actions: [sap.m.MessageBox.Action.YES, sap.m.MessageBox.Action.NO],
styleClass: "messageBoxError",
onClose: function(oAction) {
if (oAction === sap.m.MessageBox.Action.YES) {
ServiceUtils.createEntry(this, oEntry, sEntity, sURL).done(function(data) {
var jsonModel = new JSONModel(data);
var returnNumber = jsonModel.getProperty("/data/SalesDocument");
sap.m.MessageToast.show("Return " + returnNumber + " is created successfully");
vc.getOwnerComponent().getRouter().navTo("stockrooms", {
"companyId": vc.companyId
}, false);
}).fail(function(error) {
sap.m.MessageToast.show("Error in return processing");
});
} else {
sap.m.MessageToast.show("Return not confirmed");
}
}
});
解决方案
您需要加载模块“sap.m.MessageBox”
尝试这个:
jQuery.sap.require("sap.m.MessageBox");
if (totalRtn <= 0) {
sap.m.MessageToast.show("Cannot return 0 quantity");
} else {
sap.m.MessageBox.confirm("You are returning total of " + totalRtn + " items from this order", {
actions: [sap.m.MessageBox.Action.YES, sap.m.MessageBox.Action.NO],
styleClass: "messageBoxError",
onClose: function(oAction) {
if (oAction === sap.m.MessageBox.Action.YES) {
ServiceUtils.createEntry(this, oEntry, sEntity, sURL).done(function(data) {
var jsonModel = new JSONModel(data);
var returnNumber = jsonModel.getProperty("/data/SalesDocument");
sap.m.MessageToast.show("Return " + returnNumber + " is created successfully");
vc.getOwnerComponent().getRouter().navTo("stockrooms", {
"companyId": vc.companyId
}, false);
}).fail(function(error) {
sap.m.MessageToast.show("Error in return processing");
});
} else {
sap.m.MessageToast.show("Return not confirmed");
}
}
});
问候!