我创建了一个从 Ext.Panel 扩展的自定义组件。我已经为自定义组件添加了一个点击监听器,这样当它被点击时它会触发一个事件。我正在实例化视图中的自定义组件,并且我想处理从与该视图关联的 viewController 中的自定义组件触发的事件。
但是,当我触发事件时,它不会冒泡到 viewController。有没有办法在全局范围内触发事件?如何处理 viewController 中的事件,其中触发事件的组件在与视图控制器关联的视图中实例化?
我的自定义组件看起来像这样:
Ext.define('MyApp.ux.CustomComponent', {
extend: 'Ext.Panel',
xtype: 'custom-component'
initComponent: function() {
var me = this;
me.callParent();
me.addListener({
'render': function(panel) {
panel.body.on('click', function() {
me.fireEvent('customEventName');
});
}
});
}
});
我在这样的视图中实例化我的自定义组件:
Ext.define('MyApp.view.main.Main', {
extend: 'Ext.container.Container',
controller: 'main'
items: [{
xtype: 'custom-component'
}]
});
在我的 viewController 中(对于我在其中实例化我的自定义组件的视图)我有以下监听器:
customEventName: function () {
console.log('I have been fired');
}