ember.js中的全局AJAX错误处理程序

ember.js中的全局AJAX错误处理程序,ember.js,Ember.js,我正在构建一个Ember应用程序,它与后端API有很多集成,因此我想设置一个全局AJAX错误处理程序,以便在AJAX请求失败时向用户显示。如何在ember.js中设置全局AJAX错误处理程序 到目前为止,我有一个errorController: MyApplication.ErrorController = Ember.ObjectController.extend({ errorTitle: '', errorDescription: '', actions: {

我正在构建一个Ember应用程序,它与后端API有很多集成,因此我想设置一个全局AJAX错误处理程序,以便在AJAX请求失败时向用户显示。如何在ember.js中设置全局AJAX错误处理程序

到目前为止,我有一个errorController:

MyApplication.ErrorController = Ember.ObjectController.extend({
    errorTitle: '',
    errorDescription: '',
    actions: {
        backToHome: function() {
            this.transitionToRoute('home');
        }
    }
});
我正在尝试使用jQuery的
ajaxError
函数捕获AJAX故障:

Ember.$(document).ajaxError(function(event, jqXHR, ajaxSettings, thrownError) {
    var errorController = MyApplication.controllerFor('error');
    errorController.set('errorHeading', 'AJAX error');
    errorController.set('errorDescription', jqXHR.responseText); //server will return the error description
    MyApplication.transitionToRoute('error');
});

但是,
MyApplication
变量中不存在
controllerFor
。我不确定还有什么方法可以访问
ErrorController
,因为error函数完全不在余烬应用程序的范围内。

我怀疑这是余烬正确的方法,但我最终通过使用
\uu container\uuuuuu.lookup
中的
函数解决了这个问题

Ember.$(document).ajaxError(function(event, jqXHR, ajaxSettings, thrownError) {
    var errorController = MyApplication.__container__.lookup('controller:error');
    errorController.set('errorHeading', 'AJAX error');
    errorController.set('errorDescription', jqXHR.responseText); //server will return the error description
    errorController.transitionToRoute('error');
});