美好的一天,我已经进入了之前在EXTjs中完成的一个新项目,我对此很陌生,而且我正在努力探索任何事情。
我今天的问题是: 我有一个定义了tpl的面板,其中有几个函数可以操作tpl中的类(如果某个变量为true或false,则显示一个图标而不是另一个图标)。 现在我不得不将相同的逻辑转换为组合框,我遇到了一些问题:
如果我使用tpl
,我会获得相同的视觉效果,但我无法选择任何项目:
tpl: [
'<tpl for=".">',
'<div class="x-publisher {[this.renderColor(values.visible)]}">',
'<div class="x-publisher-text">{name}</div>',
'<div class="x-publisher-close fa {[this.renderIcon(values.visible)]}"></div>',
'</div>',
'</tpl>',
'<div class="x-clear"></div>',
{
disableFormats: true,
renderColor: function(visible){
return visible ? 'visible' : '';
},
renderIcon: function(visible){
return visible ? 'fa-eye-slash' : 'fa-eye'
}
}
],
itemSelector: 'div.x-publisher',
listeners: {
select: 'somefunctioncalled'
},
我明白使用组合框我必须使用listconfig和itemtpl thingy,这样:
listConfig: {
itemTpl: [
'<div class="x-publisher {visible}"><div class="x-publisher-text">{name}</div><div class="x-publisher-close fa fa-eye"></div></div>'
]
}
但是这样做,我了解到我无法在itemtpl中定义任何功能...... 所以,我的想法是在将{visible}变量传递给itemtpl之前操纵它。
商店是这样的:
store: { fields: [{ name:'name' }, { name: 'id', persist: false }, { name: 'regionalId' }, { name:'visible', type: 'boolean'}],
autoLoad: true,...
现在,是否有一种(简单的)方式来改变这种&#34;可见&#34;变量到字符串&#34;可见&#34;如果它是真的或其他东西,如果它是假的? 或者...有没有办法模拟第一个行为,我的意思是当我使用itemTpl时添加某种自定义函数(我学会了它们被称为成员函数)? 更改图标也存在问题,但我可以在此阶段忽略它。
你可以帮帮我吗? 提前谢谢。答案 0 :(得分:0)
我在itemtpl中使用了一些逻辑,似乎按预期工作:
itemTpl: [
'<div class="x-publisher',
'<tpl if="visible == true"> visible</tpl>',
'"><div class="x-publisher-text">{name}</div><div class="x-publisher-close fa fa-eye"></div></div>'
]