据我了解,你想使用模式“事件总线”? 您可以使用每个ST2应用程序中存在的'全局'和单个对象 - Ext.Viewport。至少我正在创建我的应用程序,直到现在没有什么是不好的。 请注意,创建事件处理程序的最佳位置是控制器的init()方法。
Ext.define('Myapp.controller.ActivitiesController', {
extend : 'Ext.app.Controller',
requires : [],
config: {
refs: {
myview: 'myview'
}
...
init: function() {
var me = this;
Ext.Viewport.on({
scope: this,
addactivitytype: function (config) {
var myview = me.getMyview(),
record = config.record
...
});
}
});
在另一个控制器
(或曾经观看),你可以写
addActivityTypeTap: function (record) {
....
Ext.Viewport.fireEvent('addactivitytype', {
record: record
});
}
为我的实践,我总是创建一个名为'GlobalController.js'控制器,把所有的“全球性”的事件监听器那里,并在相应的处理函数中调用其他函数的必要函数,例如:'Ext.getApplication()。getController('controller_1')。function_1()','Ext.getApplication()。getController('controller_2')。 , 等等。 – 2012-04-29 08:21:18
我以同样的方式 – ykhrustalev 2012-04-29 19:38:11