JSONModel只更改一个元素

时间:2016-01-30 01:14:34

标签: sapui5

是否可以仅更改JSONModel中的一个元素并使绑定控件仅重新加载该特定元素?

示例:

[
  {
    "name": "John Smith",
    "address": "1111 fake street"
  },
  {
    "name": "Jane Smith",
    "address": "2222 fake street"
  }
]

假设我想更改Jane Smith的地址,我会使用JSONModel.SetData()将更新对象设置为JSONModel。完成此操作后,整个绑定控件将重新加载。这对于这样一个小对象来说很好,但是如果我有一个有100个元素的对象并且我将它加载到手机上则非常慢。

那么如何在不重新加载整个控件的情况下重新加载控件的特定部分?

谢谢!

1 个答案:

答案 0 :(得分:2)

JSONModel提供了一个方法 setProperty ,可用于设置特定属性的值。设置值后,JSONModel将自动检查其绑定是否有更改。你无法避免这种情况。

在你的情况下,它看起来像:

model.setProperty("/1/address", "13th Elm Street");

我不确定此示例是否显示了如何在模型中存储数据。在genereal中,建议使用命名属性来允许XML视图中的声明性数据绑定。一个例子是:

{ "persons" : [ {
    "name": "John Smith",
    "address": "1111 fake street"
  }, 
  {
    "name": "Jane Smith",
    "address": "2222 fake street"
  } ]
}

然后你要设置地址如:

model.setProperty("/persons/1/address", "13th Elm Street");