在json中编辑模型,同时保持对模型的引用

时间:2014-11-05 18:23:11

标签: json sapui5

修改模型中数据的建议方法是什么,而不必在之后再将新模型设置到视图中?

我有一个函数,我需要在客户端计算一些东西并在我的模型中更改它:

var parsedJSON = $.parseJSON(this.getView().getModel().getJSON());
$.each(parsedJSON['UserData']['clockHistory'], function(idx, obj) {
// do some stuff to clockHistory
});
this.getView().getModel().setProperty("/UserData/clockHistory", clockHistory);

getModel()。getJSON()只返回一个JSON字符串,但不返回可以在javascript中使用的JSON对象。

2 个答案:

答案 0 :(得分:5)

  1. 要获取JSON的{​​{1}}个对象,请致电JSONModel
  2. 要刷新数据更新,请致电this.getView().getModel().getData()

答案 1 :(得分:2)

如果您使用oModel.refresh()从模型中获取所需的值,您甚至可以跳过this.getView().getModel.getProperty("/UserData/clockHistory/")部分。 getProperty()将返回一个对象。对象是通过引用创建的。因此,对新对象的任何更改都将更新模型:

var object = yourModel.getProperty("/PATH/TO/PROPERTY");

object = "new Value";  //this will update the model as well!

如果您正在使用数据绑定到控件,UI5将通知控件有关更改。