У меня есть маршрут, который имеет крючок afterModel
.Ember.js действие пузырится, но контроллер не определен в действии
afterModel: function(model, transition){
transition.send('doInAppRoute');
}
У меня есть действие в моем маршруте приложения:
doInAppRoute: function(){
var controller = this.get('controller');
controller.set('someProp', true);
}
Когда я позволяю действие на пузырь из маршрута с afterModel
крючком, я получаю следующее сообщение об ошибке.
Error while processing route: embed Cannot read property 'set' of undefined TypeError: Cannot read property 'set' of undefined
Если я ставлю вызов действий по doInAppRoute
в шаблоне приложения, все работает, как ожидалось.
Если вызов по вызову doInAppRoute
пузырьков, this.get('controller')
в моем маршруте применения не определен. Зачем?
И как это можно изменить, чтобы пузырьковое действие обновляло свойство контроллера приложения?
Контроллер не будет установлен до тех пор, пока все ловушки модели не будут устранены. –
Я бы сказал, сохраняя ваши свойства, связанные с состоянием, в контроллере. В вашем случае, если вы измените 'someProp' в маршруте, он не будет отображаться в шаблоне, если он не пройдет через setupController. – kumkanillam