gpt4 book ai didi

extjs - 在 Controller ExtJS 中定义监听器

转载 作者:行者123 更新时间:2023-12-04 07:06:03 25 4
gpt4 key购买 nike

我有 tabpanel - 这是 main形式( View )。
在此 tabpanel我定义了不同的选项卡 - xtype:'panel' .

所以,我有一个 main ( Controller ), main View 和一些选项卡 View 。main 中引用了选项卡的 View 看法。

我想定义 activate 的监听器某个 child 的事件panelmain Controller 。

我怎样才能做到这一点?
main Controller :

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 () {

}
});
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);
}

});

child panel必备公寓(查看):
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);
}
});

最佳答案

直接注册为 control 在负责的控制者内

这是一个带有工作查询的示例。当然,您只需要查询,但我认为这是一个很好的例子。自定义 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]);

另一种方法是使用可以查询的 css id,如 '#my-name'但我建议使用自定义的,如上例所示

关于extjs - 在 Controller ExtJS 中定义监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12525788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com