Вполне возможно, что я не совсем понимаю порядок создания экземпляров контроллеров при вводе маршрута, но я пытаюсь получить currentPath
в beforeModel
в моей ApplicationRoute и борется. Странно то, когда я вхожу маршрут, я могу видеть свойство controller
в нем ...Получить currentPath в 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
в ApplicationRoute
?