De acuerdo con el documento aquí: http://documentcloud.github.com/backbone/#FAQ-events la colección tiene un evento sincronizado disparado cuando hago algo para sincronizar la colección con el servidor. Intento invocar el método fetch en la recopilación y esperar el evento de sincronización en él, pero nunca sucede. Agregar evento se activa, pero solo necesito un evento después de sincronizar todos los elementos en la colección para actualizar la vista correspondiente. Hay otra forma de despedir este evento?Evento de sincronización de Backbone.js en la colección
Respuesta
Creo que el evento "sincronización" solo se activa cuando se cambia un modelo. Por lo tanto, si crea, actualiza o elimina un modelo, se activará el evento "sincronizar".
En su caso, creo que desea escuchar el evento "restablecer" en la colección.
Edit: Si está configurando la opción {add:true}
, entonces no hay un solo evento Backbone que se activará después de que se hayan agregado todos los modelos. Usted tiene algunas opciones:
- sólo escuchar al evento
add
y esperar que se llama repetidamente - emular un solo evento mediante el uso de un controlador que ha sido antirrebote usando la función
_.debounce()
. El valor de retorno de
fetch()
es un objeto jQuery XMLHttpRequest. Implementa la interfaz jQuery Deferred. Entonces podrías escuchar ese final. Por ejemplo:myCollection.fetch({add:true}).done(function(){ myView.render(); //or whatever });
La solución es para encender evento sync maunually de devolución de llamada 'éxito' se pasa como parámetro a buscar método.
this.collection.fetch({add: true, success: function(collection, response){
collection.trigger('sync');
}});
A partir de la red troncal 0.9.9 agregando el disparador de sincronización en caso de éxito, la devolución de llamada ya no es necesaria. Desde http://backbonejs.org/#changelog Eventos consolidados de "sincronización" y "error" dentro de Backbone.sync. Ahora se desencadenan independientemente de la existencia de éxito o de devoluciones de errores. –
- 1. Opciones de la colección Backbone.js
- 2. Backbone.js Colección de colecciones
- 3. Backbone.js modelo con la colección
- 4. Backbone.js Enlazado de evento
- 5. Backbone.js: Build JSON array de la colección
- 6. Backbone.js: el evento de "cambio" de la colección no se activa
- 7. Backbone.js provoca dos veces en la colección add
- 8. Colección Backbone.js y filtros Tastypie
- 9. Colección Backbone.Js con tipos específicos
- 10. Colección Backbone.js con varios tipos
- 11. Backbone.js: Eliminar un elemento de una colección
- 12. Sondeo de una colección con Backbone.js
- 13. Backbone.js: ¿forma correcta de filtrar una colección?
- 14. Insertar un elemento en una colección backbone.js
- 15. Evento de cambio de texto de Backbone.js
- 16. Backbone.js: pasar el valor de la colección a cada modelo
- 17. Backbone.js + Rest. La colección no se completa después de fetch()
- 18. comparador de la colección Backbone.js ordena por campos múltiples?
- 19. Backbone.js singular Modelos que no están en la colección
- 20. ¿Cómo añadir evento mouseover en Backbone.js
- 21. Persistencia y carga de metadatos en una colección backbone.js
- 22. Evento de restablecimiento de red troncal en la colección
- 23. Obtener una colección con un término de búsqueda en Backbone.js
- 24. Backbone.js Sync no está desencadenando ningún evento en el modelo
- 25. backbone.js - acceder a un modelo desde un evento de clic
- 26. La colección backbone.js agrega un elemento vacío cuando se crea?
- 27. Sincronización de una colección de objetos envueltos con una colección de objetos sin envolver
- 28. Backbone.js historia 'en el cambio de ruta' evento?
- 29. Actualizar una colección Backbone.js sin borrar los modelos anteriores
- 30. Levantando un Backbone.js Ver el evento
Restablecer evento no se ajusta a mis necesidades porque llamo fetch with add: true parameter. –