我希望通过error
操作在我的应用程序中实现一些一致的错误处理。我遇到的问题是,它仅在转换时引发异常时才触发,而不是例如在路由上的普通saveModelInResponseToUserClick
操作中触发。
我可以通过以下方式获得一些帮助,但这是一个技巧:
Ember.onerror = function(error) {
MyApp.__container__.lookup('router:main').send('handleError')
}
这样,我可以在不同嵌套的路由中使用不同的错误处理逻辑。
编辑:使用上述方法的另一个问题是,在应用程序完全过渡到其第一条路由之前发生了错误-在这种情况下会引发另一个异常,并且一切都会崩溃。
我可以采取其他方法吗?
最佳答案
如您所说,错误操作只会在转换时触发。
对于操作可能引起的错误,您可以尝试使用以下方法:
Ember.RSVP.on('error', function(error) {
// handle error
}
这将捕获由于您的应用程序中的 promise 而发生的任何错误。您可以访问函数内部的“错误”对象,该对象将为您提供确切的错误信息,尤其是“responseText”属性。代码本身在您的app.js文件中。
关于此的Ember文档:http://emberjs.com/guides/understanding-ember/debugging/#toc_errors-within-an-code-rsvp-promise-code
关于ember.js - 如何在过渡的外部*触发 `error` Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24536136/