如何在转换之外触发`错误'动作*

时间:2014-07-02 16:14:41

标签: ember.js error-handling

我希望通过error操作在我的应用中实现一些一致的错误处理。我遇到的问题是,只有在转换时引发异常时触发,而不是例如路由中的普通saveModelInResponseToUserClick操作

我可以尝试使用以下内容,但它是一个黑客攻击:

Ember.onerror = function(error) {
  MyApp.__container__.lookup('router:main').send('handleError')
}

有了这个,我可以在不同的嵌套路由中使用不同的错误处理逻辑。

编辑:使用上述方法的另一个问题是在应用程序完全转换到第一个路径之前发生错误 - 在这种情况下会引发另一个异常并且一切都会爆炸。

我可以采用不同的方法吗?

1 个答案:

答案 0 :(得分:1)

正如您所说,错误操作只会在转换时触发。

对于可能由操作引起的错误,您可以尝试使用以下内容:

Ember.RSVP.on('error', function(error) {

// handle error

}

这将捕获由于您的应用中的承诺而发生的任何错误。您可以访问"错误"函数内部的对象,它将为您提供一些确切错误的详细信息,特别是" responseText"属性。代码本身就在你的app.js文件中。

Ember docs:http://emberjs.com/guides/understanding-ember/debugging/#toc_errors-within-an-code-rsvp-promise-code