Javascript SAPUI5挂起更改丢失

Javascript SAPUI5挂起更改丢失,javascript,odata,sapui5,Javascript,Odata,Sapui5,我正在使用odata服务开发SAPUI5应用程序。 为了避免在更新EntitySet时发生错误时丢失更改,我之前有一个函数调用。 此functionCall调用与实体的update方法相同的代码,但没有commit。 在函数调用的success方法中,我调用submitChanges方法。 这很好,但现在我有一些领域的问题。 我更改了两个字段,并在模型中找到了更改(oModel.getPendingChanges)。 调用函数call后,一些更改丢失。在这种情况下,一个更改丢失,而另一个更改在模

我正在使用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的文档: 如果函数导入的返回类型是实体类型或实体类型的集合,则更改将反映在模型中