Ole*_*leg 8 controller extjs listener
我有tabpanel- 它是main形式(视图).在这里tabpanel我定义了不同的标签 - xtype:'panel'.
所以,我有一个main(控制器),main视图和一些标签视图.选项卡的视图在main视图中引用.
我想在控制器中定义activate一些孩子的事件的监听器.panelmain
我怎样才能做到这一点?
该main控制器:
Ext.define('KP.controller.account.apartment.Main', {
extend: 'Ext.app.Controller',
views: ['account.apartment.Main',
'account.apartment.Requisites'
],
models: ['account.apartment.Requisites'
],
stores: ['account.apartment.Requisites'
],
init: function () {
}
});
Run Code Online (Sandbox Code Playgroud)
的main观点:
Ext.define('KP.view.account.apartment.Main', {
extend: 'Ext.window.Window',
alias: 'widget.ApartmentData',
height: 566,
width: 950,
activeItem: 0,
layout: {
type: 'fit'
},
autoShow: false,
initComponent: function() {
var me = this;
Ext.applyIf(me, {
items: [
{
xtype: 'tabpanel',
activeTab: 0,
deferredRender: true,
items: [
{
xtype: 'RequisitesApartment'
}
]
}
]
});
me.callParent(arguments);
}
});
Run Code Online (Sandbox Code Playgroud)
孩子panelRequisitesApartment(视图):
Ext.define('KP.view.account.apartment.Requisites', {
extend: 'Ext.panel.Panel',
alias: 'widget.RequisitesApartment',
id: 'panel_accountrequisites',
height: 350,
width: 1124,
autoScroll: true,
layout: {
type: 'fit'
},
listeners: {
activate: function () {
....load data....
...this listeners I want to push in 'main' controller...
}
},
initComponent: function () {
var me = this;
var grid_store = Ext.create('KP.store.account.apartment.Requisites');
Ext.applyIf(me, {
dockedItems: [
{
xtype: 'gridpanel',
height: 260,
autoScroll: true,
dock: 'bottom',
store: grid_store,
id: 'r_gridFlatParams',
forceFit: true,
columns: [
...some columns....
],
viewConfig: {
}
}
]
});
me.callParent(arguments);
}
});
Run Code Online (Sandbox Code Playgroud)
将其直接注册为负责控制器内的控件
这是一个有效的查询示例.肯定你只需要查询,但我认为这是一个很好的例子.自定义cfg属性ident可以轻松找到每个选项卡.如下例所示,您将在每个面板中指定tabConfig并在那里定义标识.
Ext.create('Ext.tab.Panel', {
width: 400,
height: 400,
renderTo: document.body,
items: [{
title: 'Foo',
tabConfig: {
ident: 'foo'
},
}, {
title: 'Bar',
tabConfig: {
ident: 'bar',
title: 'Custom Title',
tooltip: 'A button tooltip'
}
}]
});
console.log(Ext.ComponentQuery.query('tabpanel tabbar tab[ident=foo]')[0]);
console.log(Ext.ComponentQuery.query('tabpanel tabbar tab[ident=bar]')[0]);
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用可以查询的css id,'#my-name'但我建议使用自定义的,如上例所示
| 归档时间: |
|
| 查看次数: |
12934 次 |
| 最近记录: |