ルーターの内部一貫性を損なうことなく、Ember.js ルーターで条件付きリダイレクトを行う方法はありますか?
5940 次
3 に答える
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({
// ...
})
})
Ember.run.next
にいる間はenter
、状態遷移が常に保留になっているので、後で遷移する必要があるので、お見逃しなく。
authentの場合に示されているように使用しますが、どのような条件でも使用することを想像できます...
于 2012-06-25T15:36:05.723 に答える
3
新しいルーターには、
beforeModel
ルートへの遷移中に条件付きロジックを含めるためにオーバーライドできるフック。beforeModel フックは、
model
フックが呼び出され、渡されます
transition
物体。を使用して別のルートにリダイレクトするかどうかを決定できます
transitionToRoute()
または、呼び出してリダイレクトしたくない場合は、遷移を中止できます
transition.abort()
于 2014-04-28T09:31:30.617 に答える
2
何をしようとしているかによっては、条件付き遷移を探している場合があります。これは別のstackoverflow questionでカバーされており、そのTLDRはこのフィドルをチェックすることです。
于 2012-07-26T16:06:14.730 に答える