假设我在以下Ember代码中输入'user'状态:
Html:
<button {{action doSomething App.currentUsername}}>Go!</button>
JS:
App.Router = Ember.Router.extend({
enableLogging: true,
root: Ember.Route.extend({
doSomething: Ember.Route.transitionTo('user'),
main: Ember.Route.extend({
route: '/'
}),
user: Ember.Route.extend({
route: '/:username',
connectOutlets: function(router, context) {
//some actions
}
})
})
});
当再次调用'doSomething'动作时,我希望Ember重新运行connectOutlets代码(因为用户名已经改变)。
将代码置于“用户”内的“doSomething”操作中不起作用,因为我需要上下文。
知道怎么做吗?
由于
答案 0 :(得分:0)
显然在Ember中,如果使用相同的上下文对象调用状态,它将不会连接出口(或者甚至不首先进入状态)。解决这个问题的方法只是提供一个新的上下文,所以我们用'
替换'doSomething'doSomething: function(router, event) {
router.transitionTo('user', {username: event.context.username});
}