我有一個路線,有一個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