是否可以仅更改JSONModel中的一个元素并使绑定控件仅重新加载该特定元素?
示例:
[
{
"name": "John Smith",
"address": "1111 fake street"
},
{
"name": "Jane Smith",
"address": "2222 fake street"
}
]
假设我想更改Jane Smith的地址,我会使用JSONModel.SetData()
将更新对象设置为JSONModel。完成此操作后,整个绑定控件将重新加载。这对于这样一个小对象来说很好,但是如果我有一个有100个元素的对象并且我将它加载到手机上则非常慢。
那么如何在不重新加载整个控件的情况下重新加载控件的特定部分?
谢谢!
答案 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");