我有一个路线,有一个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')
在我的应用程序路由中是未定义的。为什么?
如何更改这个冒泡操作更新应用程序控制器属性?
控制器将在所有模型挂钩解决后才能设置。 – 2016-09-18 18:56:37
我会说在控制器中保持你的状态相关的属性。在你的情况下,如果你在路由中改变'someProp',那么它将不会反映到模板中,除非它通过setupController。 – kumkanillam