Nach dem Dokument hier: http://documentcloud.github.com/backbone/#FAQ-events Sammlung hat Synchronisierungsereignis ausgelöst, wenn ich etwas zur Synchronisierung der Sammlung mit dem Server tun. Ich versuche, die Methode fetch bei der Sammlung aufzurufen und darauf zu warten, aber es kommt nie vor. Add event wird ausgelöst, aber ich brauche nur ein Ereignis, nachdem alle Elemente in der Sammlung synchronisiert wurden, um die entsprechende Ansicht zu aktualisieren. Es gibt eine andere Möglichkeit, dieses Ereignis ausgelöst zu bekommen?Backbone.js Synchronisierungsereignis in der Sammlung
Antwort
Ich glaube, das "Sync" -Ereignis wird nur ausgelöst, wenn Sie ein Modell ändern. Wenn Sie also ein Modell erstellen, aktualisieren oder löschen, wird das Ereignis "sync" ausgelöst.
In Ihrem Fall, ich denke, Sie wollen für das "Reset" -Event auf der Sammlung zu hören.
Bearbeiten: Wenn Sie die Option {add:true}
festlegen, gibt es kein einzelnes Backbone-Ereignis, das ausgelöst wird, nachdem alle Modelle hinzugefügt wurden. Sie haben ein paar Optionen:
- Hören Sie einfach auf das
add
Ereignis und erwarten, dass es durch die Verwendung eines Handler wiederholt - emulieren ein einzelnes Ereignis aufgerufen werden, die mit der Funktion
_.debounce()
entprellt worden ist. Der Rückgabewert von
fetch()
ist ein jQuery XMLHttpRequest-Objekt. Es implementiert die jQuery Deferred Schnittstelle. Sie könnten also auf dieses Ziel hören. Zum Beispiel:myCollection.fetch({add:true}).done(function(){ myView.render(); //or whatever });
Die Lösung ist Sync-Ereignis maunually in ‚Erfolg‘ Callback als param Methode zu holen weitergegeben zu feuern.
this.collection.fetch({add: true, success: function(collection, response){
collection.trigger('sync');
}});
Ab dem Backbone 0.9.9 wird das Hinzufügen eines Synchronisierungstriggers beim Erfolgsrückruf nicht mehr benötigt. Von http://backbonejs.org/#changelog Konsolidierte "Sync" und "Fehler" -Ereignisse innerhalb von Backbone.sync. Sie werden jetzt unabhängig von der Existenz von Erfolgs- oder Fehlerrückrufen ausgelöst. –
- 1. format sammlung in backbone.js
- 2. backbone.js leer eine Sammlung
- 3. backbone.js iterieren eine Sammlung
- 4. Sammlung vs Modell Verwirrung in backbone.js
- 5. Backbone.js feuert Render zweimal auf Sammlung hinzufügen
- 6. Backbone.js: korrekte Art eine Sammlung zu filtern?
- 7. Seltsames Verhalten mit „this“ in Backbone.js wenn in einer Sammlung
- 8. Wie platziert man eine Sammlung in einem Modell in Backbone.js?
- 9. Wie speichert man die Sammlung von Modellen in backbone.js?
- 10. Wie übergeben Wert von Sammlung zu Modell in backbone.js
- 11. Zugriff auf Sammlung auf zwei Ansichten in backbone.js
- 12. Wie starte ich eine Sammlung in Backbone.js nur mit Javascript
- 13. Seitenumbruch in Backbone.js
- 14. Backbone.js Wie mische ich Objekte innerhalb einer Sammlung?
- 15. Backbone.js: Übergabe des Werts Von Sammlung zu jedem Modell
- 16. Backbone.js: Sammlung mit mehreren Modellen mit derselben ID
- 17. Backbone.js: Entfernen Sie ein Objekt aus einer Sammlung
- 18. Richtige Art und Weise eine Backbone.js Sammlung on the fly
- 19. Backbone.js Sammlung holen() throws Uncaught Typeerror: Eigenschaft ‚idAttribute‘ undefinierter
- 20. Backbone.js Parse json auf ein Modell Sammlung Attribut
- 21. Backbone.js Sammlung Ansicht Rendern mehrmals für einzelne Trigger
- 22. automatische Update-Ansicht in backbone.js
- 23. Ändern Sie dynamisch die Größe der Sammlung in Backbone.js von HTML Wählen Sie Formular
- 24. Entfernen Sie das Modell in der Sammlung und Feuer entfernen Ereignis - backbone.js
- 25. Gleichzeitiges Umnummerieren der ListViews einer Collection in Backbone.js
- 26. Anfügen von Ansichten zueinander in Backbone.js Rahmen
- 27. mit localStorage in Backbone.js
- 28. Backbone.js analysieren nicht modifizierte Antwort
- 29. in Backbone.js Ereignisse
- 30. Backbone.js komplexeres Modell holen
Reset-Ereignis ist nicht meine Bedürfnisse, weil ich fetch mit add: true-Parameter aufrufen. –