[英]Ext JS Event not firing
我有一个应用程序,一切都很好。 但是,我无法捕获mainTabChanged事件,也不是为什么。 我做了所有与示例中一样的操作,控制台日志为FIRED
,但从未RECEIVED
。
为什么?
Ext.define('MyApp.controller.Tab', {
extend:'Ext.app.Controller',
init:function () {
var me = this;
me.mainWindow = me.getView('tab.List').create();
me.control({
'mainTab': {
mainTabChanged: me.onMainTabChanged
}
});
},
me.onMainTabChanged: function(oldTab, newTab, settings) {
console.log("received");
console.log(settings);
}
});
Ext.define('MyApp.view.tab.List', {
extend:'Ext.form.FieldSet',
alias:'widget.mainTab',
initComponent:function () {
var me = this;
me.title = 'App'
me.items = me.createElements();
me.addEvents(
'mainTabChanged'
);
me.callParent(arguments);
},
createElements: function () {
var me = this, tabs = [];
tabs = [{
title: 'Tab 1',
bodyPadding: 10,
html : 'A simple tab'
},
{
title: 'Tab 2',
html : 'Another one'
}];
var tabPanel = Ext.create('Ext.tab.Panel', {
height: 150,
activeTab: 0,
plain: true,
items : tabs,
listeners: {
beforetabchange: function(panel, newTab, oldTab) {
console.log("FIRED");
me.fireEvent('mainTabChanged', oldTab, newTab, 'Test');
}
}
});
return tabPanel;
}
});
我认为问题在于您的窗口小部件“ mainTab”是“列表”,但是您正在从“标签”触发事件。
在控制器中尝试以下操作:
me.control({
'mainTab > tabpanel': {
mainTabChanged: me.onMainTabChanged
}
要不就
me.control({
'tabpanel': {
mainTabChanged: me.onMainTabChanged
}
我的问题是,我试图将一个应用程序注入另一个。 现在,我不是通过注入应用程序而是通过将控制器和视图直接注入应用程序并因此使其成为应用程序的本机部分来解决该问题的,因此它们不会绕过事件总线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.