为非嵌套的ember路由自定义加载模板

时间:2014-10-22 00:04:38

标签: ember.js

使用ember:1.7.0

我正在尝试使用不同的加载模板,具体取决于我的应用中转换到的路线。我的所有路由都没有嵌套(即包含在资源中)。我只能使用ember来提供应用程序loading模板。有没有办法在非嵌套路由的情况下覆盖此行为?

这是一个jsbin插图问题:

  1. 定义了两个加载模板loadingtop-loading
  2. 加载后,应用会转换为top路线。
  3. 我希望这会触发top-loading模板,而是触发loading模板。
  4. http://emberjs.jsbin.com/pamego/1/

    提前感谢您的任何帮助!

2 个答案:

答案 0 :(得分:2)

问题是您的路由只嵌套了一层深度,因此应用程序级加载子状态处于活动状态。如果您的Route为2级,例如“FooBar”,则尝试加载FooBarRoute模型会导致显示foo/loading模板。

请参阅this jsbin for an example

答案 1 :(得分:2)

在我质疑你问题的前提时,我会做那件事:

如果您的路线没有嵌套,那么将它们视为资源应该没有害处。路由在嵌套时只有特殊行为(它们不会重置其命名空间)。

从概念上讲,将此路由更改为资源是有效的。 " loading"国家实际上是一种增强或特殊形式的" top"。当某些东西有这样的多个状态时,将其建模为资源是有意义的。有了所有的序言,我提出这个:

http://jsbin.com/javihuceqo/1/edit?html,js,output