延迟路由更改,直到在Ember中加载数据

yer*_*ero 1 ember.js ember-router

在Angular中,$ routeProvider resolve属性允许延迟路由更改,直到加载数据.鉴于Ember中的路径模型钩子返回一个承诺,我想知道这些东西是如何在Ember中完成的

这就是我在角度延迟AngularJS路线变化中的意思,直到模型加载以防止闪烁

带有示例代码的链接会很棒

int*_*xel 5

就在最近,这个PR将Async转换为ember.js.通过此更改,您可以执行各种操作,例如,如果数据仍在进行中,则会延迟路径转换.一条路线现在有各种各样的钩子可以做你想要的.

举个例子(取自要点如下所述)在afterModel你可以做这样的事情只是过渡钩post.show,如果你确实有数据路径:

App.PostsIndexRoute = Ember.Route.extend({
  afterModel: function(posts, transition) {
    if (posts.length === 1) {
      this.transitionTo('post.show', posts[0]);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

由于这些新功能还很年轻,您需要使用最新的主机才能使用它.有关如何使用API​​的更多信息,请参阅此要点.

希望能帮助到你