我正在寻找一种在我的窗口中引用两个控件的好方法,使用extjs refs system。
这是我的观看代码:
Ext.define('App.view.Filter',{
extend: 'Ext.window.Window',
alias: 'widget.myfilter',
items: [
{
xtype: 'container',
items: [
{
xtype: 'combobox'
},
{
xtype: 'textfield'
},
{
xtype: 'button',
text: 'Search',
action: 'search'
}
]
}
]
});
我想访问组合框和文本字段。我第一次尝试这样做:
refs: [
{
ref: 'combo',
selector: 'myfilter combobox:first'
},
{
ref: 'filter',
selector: 'myfilter textfield:first'
}
],
但是“过滤器”也得到了组合框。
答案 0 :(得分:2)
将itemId属性添加到您的商品中:
items: [
{
xtype: 'combobox',
itemId: 'myCombobox'
},
{
xtype: 'textfield',
itemId: 'myTextfield'
},
{
xtype: 'button',
text: 'Search',
action: 'search'
}
]
然后你可以像这样引用它们:
refs: [
{
ref: 'combo',
selector: 'myfilter #myCombobox'
},
{
ref: 'filter',
selector: 'myfilter #myTextfield'
}
],
你的'过滤器'参考也得到了组合框,因为组合框类继承自textfield,这就是使用itemId属性通常更好的原因。
答案 1 :(得分:0)
可替换地,
Ext.define('App.view.Filter',{
extend: 'Ext.window.Window',
alias: 'widget.myfilter',
items: [{
xtype: 'combobox',
itemId: 'myCombobox'
},{
xtype: 'textfield',
itemId: 'myTextfield'
}]
});
window1 = Ext.create('App.view.Filter').show();
window2 = Ext.create('App.view.Filter').show();
window1.down('#myCombobox');
这样您就可以从您感兴趣的特定窗口中获取组件。 有关详细信息,请查看down的文档。