2016-07-29 55 views
0

我有需要的數據的陣列如下面監聽器用於JSONModel用於自定義控制UI5

properties : { 
      scrollheight: {type : "sap.ui.core.CSSSize", defaultValue : "100%"}, 
      array1 :{type : "Array", defaultValue : []}, 
      array2 : {type : "Array", defaultValue : []}, 
     } 

定製控制和我有3 JSONModel我所設置爲視圖

問題是我需要處理這些模型,我必須將2個數組設置爲自定義控件。

當這些JSONModels發生任何變化時,我也需要更新數組。

我如何實現這一點,如果我將這些綁定到屬性?或者我需要聽取對模型的更改並更新數組?

或者是他們的其他方法嗎?

回答

0

我解決了這個通過獲取綁定和附加改變事件

我們得在特定項目的結合如果它的屬性,我們可以採取PropertyBinding如果列表或數組,我們必須採取ListBinding

,然後將模型我已經被設置爲自定義控制和改變事件將更新自定義控制模型一個模型

JSBin它顯示瞭如何更改事件添加到綁定(這裏我用ListBinding)

0

從控制器中保存JSONModel中的數據有時非常困難,因爲你總是要記住,如果你改變了一件事情,你也必須改變另一件事。

爲了減少控制器代碼的混亂,我通常創建一個JSONModel的子類,其中我負責模型的一致性。這可以通過用你自己的方法重寫setProperty方法來完成,當你看到某個屬性被編輯時,依賴屬性也會立即改變。

請在下面的jsbin中找到如何工作的例子。在這個例子中,我試圖保持2財產符合財產1:

http://jsbin.com/novepa/1/edit?html,output

+0

我正在別的尋找的東西,像我需要合併的2種型號,然後製作一個模型,而如果這些2模型的任何事情發生了變化,我需要去更新第三個數據的組合 – chiranjeevigk

+0

這個例子只是一個例子,如果你繼承了JSONModel而不是罐頭解決方案。在setProperty覆蓋中,你基本可以做任何你提到的事情,包括更新其他模型。儘管如此,我會將創意思維和最終解決方案留給你。 – jpenninkhof