Javascript SAPUI5挂起更改丢失
我正在使用odata服务开发SAPUI5应用程序。 为了避免在更新EntitySet时发生错误时丢失更改,我之前有一个函数调用。 此functionCall调用与实体的update方法相同的代码,但没有commit。 在函数调用的success方法中,我调用submitChanges方法。 这很好,但现在我有一些领域的问题。 我更改了两个字段,并在模型中找到了更改(oModel.getPendingChanges)。 调用函数call后,一些更改丢失。在这种情况下,一个更改丢失,而另一个更改在模型中仍然可见。 以下是我的保存方法:Javascript SAPUI5挂起更改丢失,javascript,odata,sapui5,Javascript,Odata,Sapui5,我正在使用odata服务开发SAPUI5应用程序。 为了避免在更新EntitySet时发生错误时丢失更改,我之前有一个函数调用。 此functionCall调用与实体的update方法相同的代码,但没有commit。 在函数调用的success方法中,我调用submitChanges方法。 这很好,但现在我有一些领域的问题。 我更改了两个字段,并在模型中找到了更改(oModel.getPendingChanges)。 调用函数call后,一些更改丢失。在这种情况下,一个更改丢失,而另一个更改在模
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的文档: 如果函数导入的返回类型是实体类型或实体类型的集合,则更改将反映在模型中