#extjs #panel #toolbar
#extjs #панель #панель инструментов
Вопрос:
У меня есть 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" >
, он работает нормально.
Комментарии:
1. используете ли вы amp; > или amp; lt, также убедитесь, что вы определили свой шаблон как Ext.XTemplate. Я думаю, что по умолчанию может быть Ext. Шаблон
Ответ №1:
Проблема, с которой вы сталкиваетесь, может заключаться в том, что XTemplate
не знает, что totalPrelimShares
такое. В примерах в XTemplate
документации всякий раз, когда используется переменная, переданная в конфигурацию шаблона (как totalPrelimShares
в вашем случае), на нее всегда ссылаются с помощью this.*
. Например:
<tpl if="this.totalPrelimShares < 0">
Если это не сработает, вы также можете попробовать использовать встроенные операторы {[ ... ]}
, как определено в документации:
<tpl if="{[totalPrelimShares]} < 0">
Ответ №2:
<tpl if="totalPrelimShares < 0" >
должно быть
<tpl if="totalPrelimShares amp;< 0" >
<
, >
и "
должны быть записаны как сущности amp;<
, amp;>
и amp;quot;
соответственно, если используются в условном. Документация по этому вопросу неверна.