在Angular中,$ routeProvider resolve属性允许延迟路由更改,直到加载数据。鉴于Ember中的路径模型钩子返回一个承诺,我想知道这些东西是如何在Ember
中完成的这就是我在棱角分明Delaying AngularJS route change until model loaded to prevent flicker
中的意思带有示例代码的链接非常棒
答案 0 :(得分:5)
就在最近,这个PR将异步转换引入了ember.js。通过此更改,您可以执行各种操作,例如,如果数据仍在进行中,则会延迟路径转换。一条路线现在有各种各样的钩子可以做你想要的。
作为一个示例(取自下面提到的要点)在afterModel
钩子中你可以做这样的事情,如果你真的有这种情况只转换到post.show
路线数据:
App.PostsIndexRoute = Ember.Route.extend({
afterModel: function(posts, transition) {
if (posts.length === 1) {
this.transitionTo('post.show', posts[0]);
}
}
});
由于这些新功能仍然非常年轻,因此您需要使用latest master来使其可用。有关如何使用API的更多信息,请see this gist。
希望有所帮助