Soy bastante nuevo en Backbone y tengo la siguiente pregunta:Backbone cambio modelo de Ver
Tengo una colección de modelos.
Tengo una vista de colección que muestra pestañas (con una vista para cada modelo en la colección).
Tengo una vista para un modelo (para el contenido).
Tengo un enrutador con rutas.
Lo que estoy tratando de lograr es una funcionalidad como http://jqueryui.com/demos/tabs/
hago clic en una pestaña (modelo de colección) y luego quiero pasar el modelo a la vista de contenido tal vez cambiar y reflejar los cambios en la colección .
me ocurrió con cuatro soluciones:
En el router:
'switchCommunity': function(id) {
// (a) set new model attributes
this.view.community.model.set(communities.get(id));
// (b) replace model
this.view.community.model = communities.get(id);
// (c) a custom function of the view changes its model
this.view.community.changeModel(communities.get(id));
// (d) a new view
this.view.community = new View({
model: communities.get(id)
})
}
El problema aquí es
(a) no refleja cambios en el modelo de la colección
(b) no se activa (modifica) eventos, debido a que la unen en la función inicialización de la vista no se dispara, ya que es un completamente nuevo modelo
(c) parece un truco para mí
(d) cada vez que haga clic en una pestaña se crea una nueva vista (se trata de una cuestión rendimiento?)
¿Cuál es la mejor pratice aquí?
Lo intentaría (d): esto no se convierte en un problema de rendimiento si primero quita la vista anterior. – swatkins
en (d) Sobreescribo mi this.view.community ¿es suficiente o tengo que eliminarlo manualmente? – Riebel
Esto debería ser suficiente, siempre y cuando los viejos elementos dom no se encuentren alrededor y tengan receptores de eventos atados a ellos, deberían ser recolectados. Verificaría con Firebug, pero creo que es correcto. – swatkins