El cambio de modelo no desencadena el cambio de colección

Tengo dos vistas diferentes (1), (2)
1) muestra la lista de usuarios
2) muestra el detalle de los usuarios

En el (2) es posible cambiar el nombre.
Entonces esperaría que el elemento correspondiente en (1) cambie en consecuencia, pero no lo hace.

¿Cómo debería arreglar/depurar el problema?

Aquí mi código esencial:

// list of users (1)
View_1 = Backbone.View.extend({
    collection: new MyCollection(),
    initialize: function () {
        this.collection.bind('add', this.addOne);
        this.collection.bind('reset', this.addAll);
    }
});

// user detail (2)
View_2 = Backbone.View.extend({
    model: new MyModel()
});

MyCollection = Backbone.Collection.extend({
    model: new MyModel()
});

preguntado el 12 de junio de 12 a las 13:06

No pareces estar vinculado a un change evento en View_1...? -

A medida que está inicializando el View.collection Me pregunto si lo reemplazas por uno nuevo. Collection en algún punto antes de comenzar a agregarle datos. Me refiero a que si cambias la Colección que el referencia está apuntando a. -

1 Respuestas

Necesitas atar un change evento a la colección. Ahora mismo solo atas reset y add, por lo que las cosas solo se actualizarán cuando se agregue un nuevo modelo a la colección, o cuando la colección se inicialice con valores iniciales.

this.collection.bind('change', this.render);

O algo así, para desencadenar el renderizado de lo que sea necesario cambiar.

Respondido el 12 de junio de 12 a las 17:06

Gracias por tu tiempo. Lo intenté pero no funciona? ¿Tienes alguna idea de por qué? o como puedo probarlo? - Lorena Bernardo

@LorraineBernard ¿Puede explicar en la pregunta qué intentó exactamente? querrás poner algo console.log llama en la devolución de llamada para comprobar que se llama en caso de cambio. Además, supuse antes que este código que publicaste era solo un ejemplo, pero para confirmar, también debes agregar los modelos a la colección correctamente. - loganfsmyth

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.