我有一个路由器设置,如下所示:
Social.Router.map(function() {
this.resource('accounts', function(){
this.resource('account', { path: ':account_id'});
});
});
输入account
路由时,我使用activate方法进行DOM操作。
Social.AccountRoute = Ember.Route.extend({
activate: function(){
console.log('entered the account route')
}
});
这很有效,第一次输入帐户路线。问题是我可以在不离开帐户路线的情况下从一个帐户更改为帐户。意思是我可以来自:
account/1
到
account/2
但是第一次输入帐户路线时,activate方法只会触发一次。是否有方法会在每次account_id slug更改时触发?
答案 0 :(得分:4)
不是一个非常直观的解决方案,但每次模型更改时都会执行3种方法:
答案 1 :(得分:2)
activate
和deactivate
。但是,model
的每次更改都会调用方法setupController
,serialize
和/account/:account_id
。 (编辑:正如@mavilein在评论中指出的那样,model
只会在网址更改时被调用,而我会离开renderTemplate
)。
无论如何,您的路由和控制器不应该关注DOM操作。通过绑定到重要值或观察控制器中的更改,将其保留到视图和模板中。