Sapui5 JSONModel将模型相互比较

Sapui5 JSONModel将模型相互比较,sapui5,jsonmodel,Sapui5,Jsonmodel,我只想在某个属性发生更改时保存模型的数据。 因此,我想比较一下原始和“变更”属性。 Sergio发现了这个提示,但没有样本。 如果你们中有人能帮我找到一个好的解决方案,那就太好了 谢谢, Dirk在使用JSONModels时,使用getJSON方法提取每个模型的数据,然后将它们转换为JS对象 var oModelA = this.getView().getModel("modelName"); var oModelB = new sap.ui.model.json.JSONModel({

我只想在某个属性发生更改时保存模型的数据。 因此,我想比较一下原始和“变更”属性。 Sergio发现了这个提示,但没有样本。

如果你们中有人能帮我找到一个好的解决方案,那就太好了

谢谢,
Dirk

在使用JSONModels时,使用getJSON方法提取每个模型的数据,然后将它们转换为JS对象

var oModelA = this.getView().getModel("modelName");
var oModelB = new sap.ui.model.json.JSONModel({
    a: 2
});
var oModelAData = JSON.parse(oModelA.getJSON());
var oModelBData = JSON.parse(oModelB.getJSON());
然后,使用任何适合您的方法对它们进行比较


您在“我只想保存模型的数据”中“保存”的确切含义是什么?您想要实现或避免什么?嗨,Boghyou,我只想在后端发生更改时向后端发送请求。您的数据实际上来自OData协议吗?@boghyon:no,ajax callvar oModelErstellerOriginalData=JSON.parse(oModelErstellerOriginal.getJSON());var oModelErstellerData=JSON.parse(oModelErsteller.getJSON());我的问题仍然是,仍然存在对已更改模型的引用。在oModelErstellerOriginalData中,值也发生了更改。如何避免对已更改模型的引用?
var-omodelerstelloriginaldata=JSON.parse(omodelerstelloriginal.getJSON());this.oModelErstellerOriginal=\ u0.clone(oModelErstellerOriginalData)让它与Lodash一起工作(删除了引用)。感谢您的帮助
this.omodelerstelloriginal;var oModelErstellerData=JSON.parse(oModelErsteller.getJSON());如果(u.isEqual(omodelerstelldata,this.omodelerstelloriginal)){
用于比较这两个对象,我也使用了Lodash。