Sencha Combo DisplayTpl

时间:2012-10-18 09:47:53

标签: extjs4 extjs

在我的组合框中我有这样的东西:

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);

关于如何做到这一点的任何想法?

2 个答案:

答案 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>'
        )

由于我似乎无法理解传递给组合的值是什么,如果它与空的不同,则返回我想要的结构,如果没有则返回''