0
呼叫控制器方法,我有我的ExtJS 4.2.1應用傾聽每一位Ajax請求(Ext.data.Connection
),所以我可以做自定義錯誤處理和其他的東西。ExtJS的內部Ext.util.Observable.observe
Im做我的Main Controller
Ext.define('App.controller.Main', {
extend: 'Ext.app.Controller',
init: function (application) {
var me = this;
this.control({
'[xtype=login] button#btnLogin': {
click: me.onLogin
},
});
Ext.util.Observable.observe(Ext.data.Connection, {
requestcomplete: function (conn, response, options) {
// Do stuff on success
},
requestexception: me.handleRequestException // Do stuff on failure
});
},
handleRequestException: function (conn, response, options) {
var me = this;
if (response.status == 401) {
// here i need to fire the logoutApplication method
// have tried: me.fireEvent('logoutApplication'); but fireEvent is undefined because "me" scope is data.Connection
// it doesnt know about the controller.
}
},
logoutApplication: function() {
var me = this;
// do somestuff here!!
}
裏面的handleRequestException
功能林內試圖做me.fireEvent(...)
但fireEvent
是undefined
因爲函數的scope
是data.Connection
。
我不想用:
var mainController = App.app.getController('App.controller.Main');
,因爲調用該init
被觸發,我與事件觸發兩次的問題時。
林新在ExtJS
所以我敢肯定有一個更好的方式來做到這一點。欣賞任何建議。
非常感謝......真棒解:) – VAAA
我創建一個打破我的頭ExtJS的問題。你認爲你可以檢查它嗎? http://stackoverflow.com/questions/24978039/extjs-4-2-datepicker-multiselect-catch-event-in-controller – VAAA