我需要每一个控制器转移到(以下简称“建模”路线)的时间触发控制器动作,但我似乎无法得到它的工作。我router.js文件是:灰烬JS - 如何触发控制器操作时的路线被激活
var Router = Ember.Router.extend({
location: config.locationType,
actions: {
loading: function() {
this.controllerFor('modeller').send('loading');
},
didTransition: function() {
this.controllerFor('modeller').send('didTransition');
}
}
});
Router.map(function() {
this.route('modeller', { path: 'modeller'});
this.route('welcome', { path: '/'});
});
export default Router;
我的建模控制器:
export default Ember.Controller.extend({
needs: 'modeller',
loading: function() {
console.log("loading")
},
didTransition: function() {
console.log("didTransition")
},
});
但我不能得到任何这些行动的登录到控制台。任何指针不胜感激。
UPDATE:
也许应该提到我用灰烬2.1.0!
所以我使用的解决方案是setupController - 但我也需要它放入下的应用程序/路由/ modeller.js特定建模路由文件。以前,我试图在app/router.js中做所有事情,并且它在那里不起作用。所以,最终的解决方案是:
# app/routes/modeller.js
import Ember from 'ember';
export default Ember.Route.extend({
setupController: function(controller, model) {
this.controllerFor('modeller').activate();
}
});
和..
# app/controllers/modeller.js
export default Ember.Controller.extend({
needs: 'modeller',
activate: function() {
console.log("activate")
},
});