在Pod结构中出错状态

这里是我在àpp/pods里面的结构:

|-application
|-index
|-error
|-user
||-index
||-view
||-edit

发生错误时,ember不会加载error路由。 相反,它会尝试加载像index_erroruser_error这样的子路由,但这些路由不存在。

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

Ember v2.1 Ember-Cli v1.13.8


您提供的结构实际上应该完全按照您所描述的内容进行。

看看这个旋律来看一个例子。 点击'查看用户'将转换到user.view路由,但单击'编辑用户'将引发user.edit路由中的异常,并将其user.edit error路由上。

有一点需要注意的是,你不应该router.js自己添加错误路由。 它接受转换错误作为它的模型,所以如果你手动执行this.route('error')并且不给它一个动态段,转换将失败。


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

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

你可以在这个旋律中看到一个完整的例子。 请注意,这与默认的错误行为有微妙的区别,因为它会产生一个完整的转换(即URL将被更新),而不仅仅是转移到子状态。


我已经设法在一个pod结构中显示一个错误路由,如下所示:

-app
--pods
----something
------template.hbs
------route.js
----error
------template.hbs

如果我在如下所示的something / route.js上抛出一个错误:

export default Ember.Route.extend({

  model() {
   throw new Error('AAA');
 }

});

并且在内容中包含error/template.hbs

Arrrh, errror!!!!

它显示错误消息。

如果你想要一个错误的子路线的something我认为你会需要以下内容:

-app
--pods
----something
------template.hbs
------route.js
------error
--------template.hbs
----error
------template.hbs

http://guides.emberjs.com/v2.1.0/routing/loading-and-error-substates/

根据上面的app/application/error是一个pod结构中的默认值。

链接地址: http://www.djcxy.com/p/29935.html

上一篇: Error States in Pod structure

下一篇: Modifying an R factor?