如何在XTemplate(itemTpl)中调用VIEW函数

时间:2015-11-11 15:56:36

标签: sencha-touch-2

有几个问题可以解决,但不适用于我的情况。 我想调用我的超类视图中定义的函数,而不是调用itemTpl本身的函数 我在itemTpl中有这样的事情:

'<span class="x-button-label" style="" id="ext-element-115">{[this.getTranslation("textcodestr", "Text by default")]}</span>',

然后,我在itemTpl config中使用了这个函数。

                getTranslation: function (textCode, defaultText) {
                    var store = Ext.getStore('TranslationsStore');
                    var index = store.findExact('TextCode', textCode)
                    if (index > -1) {
                        return store.getAt(index).data.TextTranslated;
                    }
                    return defaultText;
                }

它有效,但我希望将此函数移动到视图的超类,并能够在模板中调用该函数,而不是复制并粘贴所有应用程序模板。
当然,使用超长线来完成功能中的功能并不理想。

有没有办法做到这一点 ?

谢谢!
米尔顿

1 个答案:

答案 0 :(得分:0)

我设法通过使用单例助手来解决它,我可以从itemTpl调用它。

Ext.define('MyApp.util.Shared', {
singleton : true,

getTranslation: function (textCode, defaultText) {
     var store = Ext.getStore('TranslationsStore');
     var index = store.findExact('TextCode', textCode)
     if (index > -1) {
          return store.getAt(index).data.TextTranslated;
     }
     return defaultText;
}});

然后,在itemTpl

'<span class="x-button-label" style="" id="ext-element-115">{[MyApp.util.Shared.getTranslation("textcodestr", "Text by default")]}</span>',

HTH!
米尔顿。