我想为Ext.view.View的每个项目添加一个自定义值,这是一个窗口名称,当点击该项目时应该打开它。
我正在阅读API文档,我发现只有如何设置自定义函数,如果我也设置自定义属性会出现问题吗?
感谢您的任何建议
我在读什么:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.XTemplate
修改1:
Ext.define('MyApp.view.desktop.Icons', {
extend: 'Ext.view.View',
alias : 'widget.iconsdataview',
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="mfo-view">',
'<img src="{image}" alt="{image}" />',
'<p>{title}</p>',
'</div>',
'</tpl>'
),
itemSelector: 'div.mfo-view',
store: 'Icons',
style: 'margin: 2em;',
overItemCls: 'mfo-view-over',
trackOver: true
});
我想做这样的事情:
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="mfo-view">',
'<img src="{image}" alt="{image}" />',
'<p>{title}</p>',
'</div>',
'</tpl>',
mycustomproperty: '{property}'
),
然后在itemdblclick事件(伪代码)
itemdblclick(obj, ...) {
openMyWindow(obj.mycustomproperty);
}
希望这有帮助
答案 0 :(得分:0)
我在EXTJS 4.中没有多少工作。大部分都是3.3但我相信你可以做到以下几点:
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="mfo-view">',
'<img src="{image}" alt="{image}" />',
'<p>{title}</p>',
'</div>',
'</tpl>',
{ mycustomproperty: '{property}'
}
),
答案 1 :(得分:0)
似乎我想要的东西是不可能的,因为模板创建的对象是htmlelement,你必须做Ext.get才能使它们成为元素,实际上将它们用作ExtJS对象。
我通过使用itemdblclick方法的索引访问商店来解决。
修改1:
更好的是,您可以使用记录参数访问该项目,而无需使用索引。