Desarrollo una aplicación web jquery & backbone.js.
Un componente tiene una tabla html y detrás de esta tabla hay una colección backbone.js.
Cualquier cambio en esta colección debe conducir a una actualización de la tabla HTML, por lo que escribirbackbone.js collection events
this.collection.bind("reset add remove", this.renderRows, this);
Así que actualizar la tabla html, cuando toda la colección tiene nuevo, cuando un nuevo modelo se agrega y cuando una modelo se elimina.
También hay un componente de vista de detalle que se invoca cuando el usuario se desplaza y hace clic sobre una determinada fila de la tabla html. A principios de este componente consigo el modelo de la derecha de la colección
changeModel = this.collection.get(id);
Después de que el usuario ha cambiado algunos atributos, hago
changeModel.set(attrs);
y volver a la tabla html. El modelo en la colección tiene los valores modificados correctos.
Pero la tabla html no se actualiza ya que ninguno de los 3 eventos (restablecer, agregar, eliminar) se activó.
por lo que añade "reemplazar" a la colección de unión
this.collection.bind("replace reset add remove", this.renderRows, this);
y antes de regresar a la vista de detalle que llama
this.collection.trigger("replace");
Mi solución funciona, pero mi pregunta es:
¿Hay alguna solución backbone.js "nativa" que ya esté allí y que haya perdido y en la que no tenga que desencadenar algo solo?
Gracias. Creo que deberías prefabricar la respuesta original diciendo algo así como: "Backbone ha agregado algunas conveniencias desde que escribí esto por primera vez, si estás utilizando un Backbone reciente, mira UPDATE a continuación". Más o menos 20 líneas de lo que parece ser la respuesta están cerca del límite de capacidad de atención para algunos de nosotros. Gracias de nuevo, útil. –
La "actualización" acordada debería estar en la parte superior, pero esas 20 líneas de explicación y código estaban muy bien formateadas, no tuve problemas para leerlo. – Gal