Emberjs:路由器中的条件重定向

Jo *_*iss 10 ember.js ember-old-router

有没有办法在Ember.js路由器中进行条件重定向,而不会破坏路由器的内部一致性?

Mik*_*ski 23

你能做什么(截至今天)是这样的:

root: Ember.Route.extend({
    index: Ember.Route.extend({
        enter: function(router) {
            var logged = /* get from appropriated source... */;
            Ember.run.next(function() {
                if (logged) {
                    router.transitionTo('loggedIn');
                } else {
                    router.transitionTo('loggedOut');
                }
            });
        }
    }),

    loggedIn: Ember.Route.extend({
        // ...
    }),

    loggedOut: Ember.Route.extend({
        // ...
    })
})
Run Code Online (Sandbox Code Playgroud)

Ember.run.next当你进入时enter,不要错过as ,状态转换总是待定,所以你必须在那之后转换.

我们使用它如真实所示,但您可以想象在任何条件下使用它...

  • 如果你在`connectOutlets`而不是`enter`上做,你不应该需要`Ember.run.next`. (4认同)