有几个问题可以解决,但不适用于我的情况。 我想调用我的超类视图中定义的函数,而不是调用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;
}
它有效,但我希望将此函数移动到视图的超类,并能够在模板中调用该函数,而不是复制并粘贴所有应用程序模板。
当然,使用超长线来完成功能中的功能并不理想。
有没有办法做到这一点 ?
谢谢!
米尔顿
答案 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!
米尔顿。