extjs无法处理条件语句

时间:2011-05-19 15:29:46

标签: extjs panel toolbar

我有一个extjs tabpanel和一个toolbar这样定义。

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" >时,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

您遇到的问题可能是因为XTemplate不知道totalPrelimShares是什么。在XTemplate documentation的示例中,只要使用传递给模板配置的变量(例如totalPrelimShares,在您的情况下),就始终使用this.*引用它。例如:

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

如果这不起作用,您还可以尝试使用文档中定义的内联运算符{[ ... ]}

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

答案 1 :(得分:0)

<tpl if="totalPrelimShares < 0" >

必须是

<tpl if="totalPrelimShares &lt; 0" >
如果在条件中使用,则必须将

<>"分别写为实体&lt;&gt;&quot;。这个文档是错误的。