ventajas tutorial que examples ember desventajas javascript ember.js ember-router

javascript - tutorial - ember.js ventajas y desventajas



¿Cómo acceder al controlador desde la ruta en Ember? (2)

¿Hay alguna forma infalible de acceder al controlador desde una ruta?

<a href="#" class="btn" {{action "someAction" user}}>add</a> App.ApplicationRoute = Ember.Route.extend events: someAction: (user) -> console.log ''give me name from currentUser controller''

El someAction es muy general y creo que ApplicationRoute es el mejor lugar para ello.


Creo que el método controllerFor debería estar disponible en este caso:

App.ApplicationRoute = Ember.Route.extend events: someAction: (user) -> console.log this.controllerFor("currentUser").get("name")

Actualización en respuesta a las preguntas en los comentarios:

Todo depende de lo que quieras hacer. Preocuparse por DRY en un método tan básico, no tiene mucho sentido.

En su caso de felicitaciones, haría esto:

App.ApplicationRoute = Ember.Route.extend events: someAction: (user) -> this.controllerFor("currentUser").decrementKudos(); // implement the decrementKudos in your controller

Pero creo que el almacenamiento de este controlador también debería funcionar, si esto es demasiado código para usted:

App.ApplicationRoute = Ember.Route.extend currentUserCon : this.controllerFor("currentUser") events: someAction: (user) -> this.currentUserCon.decrementKudos(); // implement the decrementKudos in your controller


En la versión más nueva de Ember, puede acceder al controlador de la ruta actual en la ruta, como se muestra a continuación.

Ember versión 2.5

currentUserCon : this.controller

si desea acceder a otro controlador de rutas, utilice el método controllerFor .

this.controllerFor(''path to controller''); //put path to controller as parameter.