據我瞭解,你想使用模式「事件總線」? 您可以使用每個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