2014-11-05 26 views
2

在模型中修改數據的推薦方法是什麼,而不必在之後再次將新模型設置爲視圖?在json中編輯您的模型,同時保留對模型的引用

我有一個功能,我需要計算在客戶端的東西,在我的模型改變這一點:

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字符串,而不是一個JSON可以在JavaScript中使用的對象。

+0

getModel.getData()返回JSON對象 – Allen 2014-11-06 00:26:09

+0

您是正確的先生。我確實得到了json對象,但是在修改它之後,模型不會更新(使用setProperty)。 – Pieter 2014-11-06 08:50:00

+1

你還需要調用oModel.refresh()更新 – Allen 2014-11-06 09:36:02

回答

5
  1. 要獲得JSONModelJSON對象,調用this.getView().getModel().getData()
  2. 要刷新的數據更新,呼叫oModel.refresh()
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將通知有關變更的控制。

相關問題