extjs не может обработать условный оператор - PullRequest
0 голосов
/ 19 мая 2011

У меня есть 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 голосов
/ 19 мая 2011
<tpl if="totalPrelimShares < 0" >

должно быть

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

<, > и " должно быть записано как сущности &lt;, &gt; и &quot; соответственно, если они используются в условном выражении,Документация неверна на этом.

0 голосов
/ 19 мая 2011

Возможно, проблема в том, что XTemplate не знает, что такое totalPrelimShares. В примерах из документации XTemplate всякий раз, когда используется переменная, переданная в конфигурацию шаблона (например, totalPrelimShares, в вашем случае), она всегда упоминается с помощью this.*. Например:

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

Если это не сработает, вы также можете попробовать использовать встроенные операторы {[ ... ]}, как определено в документации:

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