我的路线有afterModel
挂钩。
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')
未定义。为什么呢?
如何改变这一点,以便冒泡操作更新应用程序控制器属性?
答案 0 :(得分:0)
感谢@torazaburo带领我朝着正确的方向前进。
这就是我所做的。
将someProp
设置为应用程序路径中的初始值。
someProp: false,
然后在应用程序路由操作中执行以下操作:
doInAppRoute: function(){
this.set('someProp', true);
}
然后在应用程序路由setupController中执行:
setupController: function(controller, model){
controller.set('someProp', this.get('someProp'));
controller.set('model', model);
}
然后一切都应该有效。