在我的组合框中我有这样的东西:
displayTpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'{Nome} ({Valor})',
'</tpl>')
它工作正常,但如果没有预先选择的组合值,则显示此“()”
所以我试图创建一个模板,当值为空时,它显示如下:
displayTpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<tpl if="this.isEmpty({Nome})">',
'',
'<tpl else>',
'{Nome} ({Valor})',
'</tpl>',
'</tpl>',
{
isEmpty: function (value) {
return value == '';
}
})
但是当我评估tpl时,我不断收到错误消息“Expected:”(extjs-all-debug)
compile: function (tpl) {
var me = this,
code = me.generate(tpl);
return me.useEval ? me.evalTpl(code) : (new Function('Ext', code))(Ext);
关于如何做到这一点的任何想法?
答案 0 :(得分:3)
tpl标记中的表达式不需要{}。所以请尝试使用此模板:
'<tpl for=".">',
'<tpl if="this.isEmpty(Nome)">',
'',
'<tpl else>',
'{Nome} ({Valor})',
'</tpl>',
'</tpl>'
答案 1 :(得分:0)
我已经解决了:)
displayTpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<tpl if="Nome != \'\'">',
'{Nome} ({Valor})',
'<tpl else>',
'',
'</tpl>',
'</tpl>'
)
由于我似乎无法理解传递给组合的值是什么,如果它与空的不同,则返回我想要的结构,如果没有则返回''