emberjs-1.0.0-RC-6.1
我的控制器:
Application.LoginController = Ember.Controller.extend({
loginFailed: false,
isProcessing: false,
isSlowConnection: false,
timeout: null,
login: function() {
/* some code */
},
success: function() {
this.reset();
},
failure: function() {
this.reset();
},
reset: function() {
clearTimeout(this.get("timeout"));
this.setProperties({
isProcessing: false,
isSlowConnection: false
});
}
});
我的路由:
Application.LoginRoute = Ember.Route.extend({
setupController: function(controller, model) {
controller.reset();
},
events: {
}
});
当我第一次进入“/ login”时,会调用setupController。但是,我想在每次应用程序转换到登录时使用事件(如转换)来调用controller.reset()。
使用 LOG_TRANSITIONS:true
我可以在控制台中看到“转换为'登录'”,“转换为'anotherPage'”,所以我想知道是否有可能在我的路由器中获取触发这些日志的事件。
喜欢:
Application.LoginRoute = Ember.Route.extend({
setupController: function(controller, model) {
controller.reset();
},
events: {
didTransition: function(reason) {
controller.reset();
}
}
});
答案 0 :(得分:3)
我想知道是否有可能在我的路由器中获取触发这些日志的事件。
你可以挂钩路由的activate
和deactivate
钩子并从那里调用控制器方法,如下所示:
Application.LoginRoute = Ember.Route.extend({
activate: function() {
this.controllerFor('login').send('reset');
},
deactivate: function() {
this.controllerFor('login').send('reset');
}
});
希望它有所帮助。