2015-01-16 55 views
3

如何在綁定中應用條件?在綁定視圖中應用條件

鑑於讓

{ xtype : 'label', bind : { text : '{//--- set text as per the condition }', hidden : '{//should be true if 'param' in VM is 1 or 2 else should be false}' } }

在視圖模型, 'PARAM' 是一個數據變量。如果

PARAM = 1的值,文本應是一個,

PARAM = 2,文本應是兩個,

PARAM = 3,文本應該是三。

這是可能的,沒有公式通過直接在視圖中應用條件?

+0

否,您需要使用公式 –

+0

另一個選項是將狀態綁定到config中的變量。將狀態綁定到該配置,然後在更新函數掛鉤上更改它,具體取決於狀態 –

+0

您可以在[本示例]中找到實現「狀態」更改的公式(http://extjs.eu/ext-examples/#complex-data-binding-5)。 – Saki

回答

0
{ 
    xtype : 'label', 
    bind : 
    { 
     text : '{textVal}'==0?'Test':'TEST1234', 
     hidden : ('{param}'==1 || '{param}'==2)?true:false 
    } 
} 

在相關聯的視圖模型,如果一個人有在數據配置屬性param,那麼可以將其用於上述連同條件檢查結合。如果param值是動態變化的(即,this.getViewModel().setData('param', 1)),那麼代碼仍然可以動態地隱藏組件)。對於另一個配置viewModel -> data:{textVal:0,param:1}也是如此。如果在數據中有一個對象,如data:{ config:{ textVal:0 }, param:1 },則可以使用bind:{ text:'{config.textVal}' //along with ur condition check }

+2

將解釋添加到答案中並設置答案的格式 – Adam

+1

@Adam:說明 - >在相關的vi中說ewModel,如果你在數據配置中有屬性「param」,那麼你可以使用它來進行綁定以及上面提到的條件檢查。 (即this.getViewModel()。setData('param',1)),那麼我的代碼仍然可以動態地隱藏組件。 與其他配置相同。 視圖模型 - >數據:{textVal:0,PARAM:1} 如果u有裏面的數據對象,如 數據:{ 配置:{ textVal:0 }, PARAM:1 },可以使用綁定:{0122]配置文本:'{config.textVal}'//連同你的條件檢查 } –

+1

我不明白答案中的表達式如何工作。在傳遞給extjs綁定邏輯之前,任何'=='比較都會被javascript引擎評估爲false。 – Vadzim