this.controller не определен в классе Route
Я разрабатываю SPA с использованием EmberJS последней версии 1.7.0, согласно Ember docs, маршрут содержит свойство, которое содержит ссылку на контроллер, но всегда возвращает undefined во всех моих маршрутах.
ApplicationRoute = Ember.Route.extend({
queryParams: {
tsk: {
// Opt into full transition
refreshModel: true
}
},
model: function(params) {
var task = {"name" : "task"};
this.controller.set('currentTask',task);
return task;
}
});
а также по другому маршруту
SubfileRoute = Ember.Route.extend({
model : function(params) {
console.log(this.controllerName);
console.log(this.controller);
}
});
и то и другое console.log(this.controllerName);
а также console.log(this.controller);
не определены,
как правильно работать с контроллерами ember? единственный способ, который, кажется, работает - через this.controllerFor()
Обновить:
Я также пытался использовать этот метод:
needs:'application',
currentTask : Ember.computed.alias('controllers.application.currentTask'),
но также currentTask всегда неопределен, так как сам контроллер.
1 ответ
Решение
Если вы хотите установить свойства на контроллере, вы должны использовать хук setupController:
model: function(params) {
return {"name" : "task"};
},
setupController: function(controller, task) {
controller.set('currentTask',task);
}