Ember.js - Pod结构中的错误状态

med*_*kin 7 javascript ember.js ember-cli

这是我的内部结构àpp/pods:

|-application
|-index
|-error
|-user
||-index
||-view
||-edit
Run Code Online (Sandbox Code Playgroud)

发生错误时,ember不会加载error路由.相反,它尝试加载子路径index_error,user_error但不存在.

如何强制Ember error在任何错误上加载根路由?

Ember v2.1 Ember-Cli v1.13.8

dfr*_*man 1

您提供的结构实际上应该完全符合您所描述的要求。

看一下这个 twiddle来看看一个例子。单击“查看用户”将转换到user.view路线,但单击“编辑用户”将在路线中引发异常user.edit,并将您带到error路线上。

需要注意的一件事是,您不应该自己在router.js. 它接收转换错误作为其模型,因此如果您手动执行this.route('error')但不给它动态段,转换将会失败。


如果您希望更好地控制任何转换期间发生错误时发生的情况,您可以error在应用程序路由上实施该操作。

actions: {
  error(thrownError) {
    this.transitionTo('my-error-route'); // Or whatever other handling you want
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以在这个 twiddle中看到这种安排的完整示例。请注意,这与默认错误行为有细微的不同,因为它将产生完整的转换(即 URL 将被更新),而不是仅仅进入子状态。