1
完全有可能我不完全理解進入路由時控制器的實例化順序,但我試圖在我的ApplicationRoute中獲取currentPath
beforeModel
並掙扎。奇怪的是,當我登錄的路線,我可以看到一個名爲controller
在其財產...在ApplicationRoute中獲取當前路徑
beforeModel: function(transition) {
console.log(this);
console.log(this.controller); // undefined
console.log(this.get('controller')); // undefined
// this too
console.log(this.controllerFor('application'));
console.log(this.controllerFor('application').currentPath); // undefined
console.log(this.controllerFor("application").get("currentPath")); // undefined
},
但this.controller
是不確定的。正如你在日誌輸出中看到的那樣,currentPath的確在該屬性上設置,這就是我想要的!
我注意到,controller
顯然沒有定義,直到路由器實例化了控制器。所以documentation有點清楚,因爲在willTransition
,this.controller
是定義。
控制器屬性似乎在setup
定義,所以我很困惑,我怎麼能看到它在beforeModel
。我如何獲得currentPath
beforeModel
in ApplicationRoute
?