Cuando uso el enrutador Ember, ¿cómo puedo definir las acciones en la plantilla que están conectadas al controlador?Ember.js Acción del enrutador al controlador
Un ejemplo es aquí: http://jsfiddle.net/KvJ38/3/
Unter mi perfil son dos acciones: uno se define en el Estado, y está trabajando en dos se define en el controlador. ¿Cómo puedo hacer que esto funcione o debería usar otro enfoque?
App.Router = Em.Router.extend({
enableLogging: true,
location: 'hash',
root: Em.State.extend({
// EVENTS
goHome: Ember.State.transitionTo('home'),
viewProfile: Ember.State.transitionTo('profile'),
// STATES
home: Em.State.extend({
route: '/',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet(App.HomeView);
}
}),
// STATES
profile: Em.State.extend({
route: '/profile',
connectOutlets: function(router, context) {
var appController = router.get('applicationController');
appController.connectOutlet(App.ProfileView);
}
}),
one: function() {
alert("eins");
},
})
});
Gracias. Aquí está la solución de trabajo: http://jsfiddle.net/KvJ38/4/ – Lux
En realidad, el objetivo predeterminado de una acción es el controlador que lo contiene y luego el enrutador. Aquí hay un ejemplo de jsbin que muestra que el controlador maneja la acción cuando está definida tanto en el controlador como en la ruta: http://emberjs.jsbin.com/tupil/3/edit. Y aquí están los documentos de ember sobre acciones: http://emberjs.com/guides/templates/actions/ – bantic
De los documentos: "De forma predeterminada, el ayudante {{action}} desencadena un método en el controlador de la plantilla" http://emberjs.com/guides/templates/actions/#toc_action-bubbling – fmendez