ember.js - 如何在过渡的外部*触发 `error` Action

标签 ember.js error-handling

我希望通过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/

相关文章:

javascript - ="submit"和 ="enter"上的 EmberJS 通过鼠标单击而不是输入来触发

ember.js - 无需转换即可更改 URL

php - 出现错误时加载500.shtml页面

error-handling - PHPMailer 不提供 ErrorInfo

php - 尽管error_reporting(E_ALL)和使用error_log类型3,PHP警告仍在屏幕上

javascript - Ember.JS最佳实践: Model vs Controller field binding

javascript - 谁能解释一下 ember.js 创建函数

ember.js - 如何为重度嵌套的 ember.js 路由结构连接导出

java - 处理多种类型的错误

java - 错误处理系统如何处理错误?