如何检查我的模型中已经创建的条目?

How can I check on already created entries in my model?

我是sapui5新手,无法解决以下问题

我有一个 SplitApp。 当我在主视图中选择第一个条目时,将调用详细视图。在详细视图的 onInit 事件中,方法 createEntry 运行s。为了处理我的输入数据,我调用了 submitChanges。

现在,当我在我的主视图上调用第二个条目时,会调用另一个视图,并为第二个视图调用 onInit 事件 运行s 并创建自己的条目。但是从方法 createEntry 的第一个视图中创建的条目不会被删除。 现在我在我的主视图上调用第一个条目,并再次为第一个视图创建 onInit 事件 运行s 和第二个 ID。当我 运行 submitChanges 方法时,这会导致错误。 我在视图之间切换的次数越多,我创建的条目就越多。

那么有没有我可以用来调用 deleteCreatedEntry 的事件?我已经尝试过 onExit 和 onBeforeHide。 或者是否更好地检查是否已创建条目?我必须为此使用哪个代码?

this.oContext = this.getModel().createEntry("/MyoData01Set", {
                success: this._successSave.bind(this),
                error: this._errorSave.bind(this)
            });

非常感谢和最诚挚的问候 茱莉亚

此外 13.05.20:

我实施了建议,但仍然无效。当我尝试输入方法 _this.bindNewContext(); 时出现错误 请看代码:

handleMatchedDetail: function (oEvent) {
            this.getModel().metadataLoaded().then(function () {
                this.getModel().resetChanges().then(function () {
                    this._bindNewContext();
                });
            }.bind(this));
        },

        _bindNewContext: function () {
            this.oContext = this.getModel().createEntry("/Kardex01Set", {
                success: this._successSave.bind(this),
                error: this._errorSave.bind(this)
            });
            // }
            var oBindingPath = {
                path: this.oContext.getPath(),
                events: {
                    change: function () {
                        this.getModel().read("/Kardex01Set('0')", {
                            success: function (oData, oResponse) {
                                this.getView().getModel().setProperty(this.oContext.getPath() + "/tanum", oData.tanum);
                            }.bind(this)
                        });
                    }.bind(this)
                }
            };
            this.getView().bindObject(oBindingPath);
        },

您只需在您的模型上调用 resetChanges。这将删除所有尚未提交的更改。

详情见API description