Actualmente estoy probando Backbone.js junto con una aplicación de rieles. Mi problema es que no sé cómo implementar los controladores y las vistas de Backbone con mi aplicación Rails. He leído muchos tutoriales, pero siempre están usando solo un controlador en backbone.js.Backbone.js con Rails
Por ejemplo, tengo dos controladores en los rieles.
- actividades Controlador
- Incluye dos puntos de vista, un mapa de Google y un campo de búsqueda. El mapa de Google se inserta con una vista de red troncal, el campo de búsqueda está en HTML y obtiene su funcionalidad a través de una vista de red troncal.
- El campo de búsqueda debe obtener datos de mi modelo de rieles y mostrar marcadores dentro del mapa.
Y el otro es
- Usuarios Controlador
- Aquí el perfil de los usuarios es visto, y quiero añadir alguna funcionalidad Ajax como valores de actualización y otras cosas
En mi application.js I iniciar la aplicación utilizando
var App = {
Views: {},
Controllers: {},
Collections: {},
init: function() {
new App.Controllers.Activities();
new App.Controllers.Users();
Backbone.history.start();
}
};
$(function() {
App.init();
});
El problema es, que no necesito el controlador Actividades en mi perfil de usuario y el controlador de usuarios en el controlador Rails Actividades. ¿Cómo podría resolver esto? ¿Debo intentar leer la URL actual dentro de javascript y luego decidir qué controlador se usa? ¿O debería poner el archivo JavaScript en la aplicación.html.erb y luego decidir aquí qué controlador debería usarse?
¿O es esta la manera incorrecta de usar los controladores backbone.js?
¿Me estoy equivocando con la estructura de backbone.js? ¿O estoy usando los Controladores de una manera incorrecta?
Otra pregunta es, ¿cómo agregar poco JavaScript, en particular la funcionalidad jQuery, a través de Backbone.js? Por ejemplo, quiero quitar la etiqueta dentro de un campo, cuando el usuario hace clic en el campo. O quiero hacer alguna función de tabulación y simplemente alternar la visibilidad de algunos elementos. ¿Debo crear para cada elemento que use javascript una vista Backbone? ¿O es esta sobrecarga?
Espero que haya sido claro y que cualquiera pueda ayudar, thx!
¡Usar las rutas es una buena idea! Pero como dijiste, mi URL no tiene ningún truco. Estoy usando las rutas estándar de los rieles.¿Hay una manera mejor de decidir qué controlador elegir? O tal vez voy a tenedor backbone.js y agregar esta funcionalidad. ¿Qué piensas? – 23tux
No creo que sea necesario un tenedor. Sus controladores son solo clases, nada debería suceder realmente a menos que llame a uno de estos métodos de clases. ¿Podría explicar qué está haciendo dentro de sus controladores que hace que quiera "dividir" el código de esta manera? (En un nivel más general: agregaré otra forma de invocar JS dependiendo del controlador actual de Rails a mi respuesta). – polarblau
thx para que haga su comentario y su actualización. Pero no me gusta este método que CSS está involucrado para decidir qué controlador se debe utilizar. Quiero dividir este código de esta manera, porque creo que es más claro mantener el código JavaScript del controlador de actividades aparte de otros controladores. Por ejemplo, tengo un mapa en el controlador de actividades y en el controlador de usuarios. La vista es la misma, pero el comportamiento es diferente. Otra cosa es, ¿cómo podría manejar esto dentro del método particular de los rieles (digamos, el código solo pertenece a un método de un controlador, por ejemplo, la acción nueva)? – 23tux