penso che il metodo controllerFor
dovrebbe essere disponibile a questo evento:
App.ApplicationRoute = Ember.Route.extend
events:
someAction: (user) ->
console.log this.controllerFor("currentUser").get("name")
Aggiornamento in risposta alle domande nei commments:
Tutto dipende da cosa si vuole fare. Preoccuparsi di ASCIUGARE su un metodo così basilare, non ha molto senso imho.
Nei tuoi complimenti caso sinistra farei questo:
App.ApplicationRoute = Ember.Route.extend
events:
someAction: (user) ->
this.controllerFor("currentUser").decrementKudos();
// implement the decrementKudos in your controller
ma credo che la memorizzazione di questo regolatore dovrebbe anche funzionare, se questo è troppo codice per voi:
App.ApplicationRoute = Ember.Route.extend
currentUserCon : this.controllerFor("currentUser")
events:
someAction: (user) ->
this.currentUserCon.decrementKudos();
// implement the decrementKudos in your controller
Grazie, ma è possibile ottenere un riferimento a tale proprietà, ad esempio posso memorizzarlo in una variabile in modo che possa operare su di esso? 'name = this.controllerFor ('currentUser'). Get 'name'' ' return "ciao, # {nome}' possibile? L'accesso ai controller in questo modo molte volte non è ASCIUTTO :) – wryrych
Ad esempio questo sarebbe un overkill: 'this.controllerFor ('currentUser'). set 'kudosLeft', this.controllerFor ('currentUser'). get 'kudosLeft' - 1' :) – wryrych
Vedere la mia risposta aggiornata. – mavilein