2016-01-30 41 views
0

是否可以僅更改JSONModel中的一個元素,並使綁定的控件僅重新加載該特定元素?JSONModel只更改一個元素

例子:

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

假設我想改變簡·史密斯的地址,我會用JSONModel.SetData()到更新對象設置成JSONModel。完成後,整個綁定控件將自動重新加載。對於這樣一個小對象來說這很好,但是如果我有一個有100個元素的對象,並且我將它加載到手機上,它非常緩慢。

那麼如何重新加載控件的特定部分而無需重新加載整個控件?

謝謝!

回答

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");