簡體   English   中英

SAPUI5未完成更改丟失

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM