[英]SAPUI5 pendingChanges get lost
我正在使用帶有odata-services的SAPUI5應用程序。 為了避免在更新EntitySet時發生錯誤時丟失更改,我之前有一個函數調用。 此functionCall調用與實體的update方法相同的代碼,但沒有提交。 在函數調用的成功方法中,我調用了commitChanges-Method。 這工作正常,但現在我在某些領域存在問題。 我更改了兩個字段,並發現了模型中的更改(oModel.getPendingChanges)。 調用函數之后,一些更改會丟失。 在這種情況下,其中一項更改會丟失,而另一項更改仍在模型中可見。 這是我的保存方法:
onSavePressed: function() {
if (this.getView().getModel().hasPendingChanges()) {
var oChanges = new sap.ui.model.json.JSONModel();
oChanges.setData(this.getView().getModel().getProperty("/" + this.sPath));
this.getView().getModel().callFunction("/CheckData", {
method: "GET",
urlParameters: {
param1: oChanges.oData.param1,
param2: oChanges.oData.param2,
param3: oChanges.oData.param3,
param4: oChanges.oData.param4
},
success: function(oData, response) {
this.getView().getModel().submitChanges({
success: function(oData, oResponse) {
sap.m.MessageToast.show(this.getView().getModel("i18n").getResourceBundle().getText("DATA_SAVED"));
}.bind(this),
error: function(oError) {
console.log(oError);
}.bind(this)
});
}.bind(this),
error: function(oError) {
console.log(oError);
}.bind(this)
});
}
},
您是否知道為什么這些更改會丟失或如何避免丟失這些更改?
找到了問題的原因。 只是應該閱讀callFunction的文檔: 如果函數導入的返回類型是實體類型或實體類型的集合,則更改將反映在模型中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.