我正在开发一个充当应用程序任务栏的组件。
目前,我有一个App
类(不是完全限定的类名),它扩展了Ext.window.Window
,init
创建了一个button
引用自身并将其呈现给任务栏。但我并不认为将应用程序添加到任务栏是应用程序的责任,而是任务栏负责监听应用程序初始化并在其中创建对它们的引用。< / p>
因此,在任务栏ViewController
中,我需要捕获任何render
实例触发的所有App
事件。我无法在文档中找到一种方法。
我该怎么办?或者有更好的方法吗?
ExtJS 5.1
答案 0 :(得分:0)
定义Ext.app.EventDomain以监控Ext.window.Window事件。
Ext.define('MyApp.app.domain.Taskbar', {
extend: 'Ext.app.EventDomain',
singleton: true,
requires: [
'Ext.window.Window'
],
// catalog the domain in the Ext.app.EventDomain.instances map
type: 'taskbar',
idProperty: 'id',
constructor: function() {
this.callParent();
this.monitor( Ext.window.Window );
}
})
定义一个控制器来监听窗口渲染事件。
Ext.define('MyApp.controller.Taskbar', {
extend: 'Ext.app.Controller',
requires : [
'MyApp.app.domain.Taskbar'
],
init: function() {
this.listen({
taskbar: {
// wildcard selector to match any window
'*':{
render: function(window, eOpts){
console.log('render window: ' + window.id);
}
}
}
})
}
})