2011-05-19 39 views
0

我有一個extjs tabpaneltoolbar像這樣定義。extjs無法處理條件語句

tbar : { 
{ 
xtype:'box', 
tpl:[ 
'<table><tr><td>', 
'<b>Total Prelim Shares:</b> ', 
'</td><tpl if="totalPrelimShares < 0" ><td width="30" style = "color:red">', 
'{totalPrelimShares}', 
'</td></tpl><td width="10">', 
'<span class="xtb-sep"></span>', 
'</td><td>', 
'<b>Total Prelim Gross Amount:</b>', 
'</td><td width="70">', 
'{totalPrelimGrossAmount}', 
'</td><td>', 
'<b>Total Prelim Net Amount:</b>', 
'</td><td width="70">', 
'{totalPrelimNetAmount}', 
'</td></tr><table>'    

], 
ref:'../ipTotalBar', 
data:{totalPrelimShares :'0'} 
} 
} 

我這樣稱呼它:

var obj = {totalPrelimShares : -10,totalPrelimNetAmount:20,totalPrelimGrossAmount : 30 }; 
this.ipTotalBar.update(obj); 

沒有錯誤,但{totalPrelimShares}顯示不出來。當我刪除tpl if="totalPrelimShares < 0" >時,它工作正常。

+0

您使用的是& gt;還是&lt;也確保您將模板定義爲Ext.XTemplate。我認爲默認可能是Ext.Template – 2011-05-19 16:26:57

回答

0

您遇到的問題可能是因爲XTemplate不知道totalPrelimShares是什麼。在XTemplate documentation的示例中,無論何時使用傳遞給模板配置的變量(如totalPrelimShares,就您的情況而言),它總是使用this.*引用。例如:

<tpl if="this.totalPrelimShares < 0"> 

如果不工作,你也可以嘗試使用內嵌運營商{[ ... ]},如文檔中定義:

<tpl if="{[totalPrelimShares]} < 0"> 
0
<tpl if="totalPrelimShares < 0" > 

必須

<tpl if="totalPrelimShares &lt; 0" > 

<,>"必須寫成e如果在條件內使用,則分別爲&lt;,&gt;&quot;。這個文件是錯誤的。