Мне нужно запускать действие контроллера каждый раз, когда контроллер переходит к (маршрут «modeller»), но я не могу заставить его работать. Мой router.js файл:Ember 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:
Вероятно, следовало бы упомянуть, я использую Ember 2.1.0!
Таким образом, решение, которое я использовал, было setupController - но мне также нужно было поместить его в конкретный файл маршрута modeller в app/routes/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")
},
});