¿Hay alguna otra posibilidad de manejar con los controladores y vistas Ember.Router? La estructura de mi aplicación generalmente depende de require.js, que se ocupa de las dependencias correspondientes.¿Cómo puedo configurar ApplicationController en Ember.Router
En mi ejemplo, estoy haciendo lo de App.ApplicationController como el controlador principal del enrutador.
Aquí hay una jsFiddle: http://jsfiddle.net/mediastuttgart/uMKGt/1/
Pero ¿hay alguna posibilidad de establecer de forma manual? Encontré este mensaje de confirmación https://github.com/emberjs/ember.js/commit/be69395f5eec4187b1df052d7386bcda45f79475 donde puedo ver, cómo configurar el controlador y verlo manualmente (de todos modos no pude hacerlo funcionar). Pero no se encontraron ejemplos como:
App = Ember.Application.create();
App.MyController = Ember.Controller.extend({});
App.MyView = Ember.View.extend({});
Router = Ember.Router.extend({
applicationController : App.MyController,
root : Ember.Route.extend({
index : Ember.Route.extend({
route : '/',
connectOutlets : function (router) {
router.get('applicationController').connectOutlet(App.MyView);
}
})
}),
...
});
EDITAR
que estoy tratando de explicar esto un poco más en detalle. Si bien utilizamos require.js para administrar o dependencias, tenemos múltiples controladores que son responsables de sus propias partes de la aplicación completa. Digamos que tenemos un formulario de suscripción al boletín informativo. El controlador utilizado para este escenario se estructura en
- app
-- controller
--- newsletter
---- signup.js
--- cart
--- checkout
-- view
-- model
-- router
-- template
Como usamos una función personalizada para generar espacios de nombres Em.Provide('App.Controller.Newsletter');
lo que crea un objeto en App.Controller.Newsletter
. Este objeto ahora sirve como base de control para toda nuestra aplicación de boletín. A partir de App.Controller.Newsletter.Signup = Ember.Controller.extend({});
tenemos que pasar en esta instancia como "ApplicationController" para el enrutador. Como puede ver, no podemos simplemente usar App.ApplicationController
para instanciar un controlador para Ember.Router.
N.B. El nombramiento es importante aquí. Ember busca un ApplicationController debajo del espacio de nombres de su aplicación. si la pregunta original hubiera usado eso en lugar de MyApplicationController, habría funcionado automáticamente. –
@BradleyPriest Debería haber escrito esto ... –
Gracias por las respuestas. He actualizado mi pregunta con más detalles. –