Я думаю, что метод controllerFor
должен быть доступен в этом случае:
App.ApplicationRoute = Ember.Route.extend
events:
someAction: (user) ->
console.log this.controllerFor("currentUser").get("name")
Update в ответ на вопросы в commments:
Это все зависит от того, что вы хотите сделать. Беспокойство о СУШЕ на такой базовый метод, не имеет особого значения imho.
В ваших престижности оставил случай я хотел бы сделать это:
App.ApplicationRoute = Ember.Route.extend
events:
someAction: (user) ->
this.controllerFor("currentUser").decrementKudos();
// implement the decrementKudos in your controller
Но я думаю, хранение этого один контроллер должен также работать, если это слишком много кода для вас:
App.ApplicationRoute = Ember.Route.extend
currentUserCon : this.controllerFor("currentUser")
events:
someAction: (user) ->
this.currentUserCon.decrementKudos();
// implement the decrementKudos in your controller
Спасибо, но возможно ли получить ссылку на это свойство, например, можно ли хранить его в переменной, чтобы я мог работать на нем? 'name = this.controllerFor ('currentUser'). Get 'name'' ' return' hello, # {name} ' Возможно ли? Доступ к контроллерам таким образом много раз не DRY :) – wryrych
Например это будет излишним: 'this.controllerFor ('currentUser'). set 'kudosLeft', this.controllerFor ('currentUser'). get 'kudosLeft' - 1' :) – wryrych
См. мой обновленный ответ. – mavilein