【发布时间】:2012-10-01 16:08:53
【问题描述】:
受Emberjs: Conditional redirect in router 的启发,我想我可以在 Ember 路由器中使用瞬态,因为这就是该问题中的“索引”路由 - 它被输入并立即转换到另一个状态,而没有新事件触发它。
我可以使用以下代码(触发动作transitionTwice)获得所需的效果,但是 URL 会以相反的顺序更新,使其处于第一个状态,即使应用程序以正确的顺序遍历状态以结尾预期的最后状态。
App.Router = Ember.Router.extend({
enableLogging: true,
root: Ember.Route.extend({
transitionTwice: Ember.Route.transitionTo('twiceStep1'),
index: Ember.Route.extend({
route: '/',
}),
twiceStep1: Ember.Route.extend({
route: '/twiceStep1',
connectOutlets: function (router) {
router.transitionTo('twiceStep2');
}
}),
twiceStep2: Ember.Route.extend({
route: '/twiceStep2',
})
})
}),
App.initialize();
控制台输出显示正确的状态变化:
STATEMANAGER: Sending event 'transitionTwice' to state root.
STATEMANAGER: Entering root.twiceStep1
STATEMANAGER: Entering root.twiceStep2
但是 URL 的结尾是:
...test2.html#/twiceStep1
谁能发现我做错了什么?
谢谢, 乔恩。
【问题讨论】: