Wie bereits in einer früheren Antwort erwähnt, wurde die Option add
in 1.0.0 entfernt. Sie können dasselbe erreichen, indem Sie stattdessen remove: false
übergeben. Aus den Dokumenten:
Das Verhalten von fetch kann angepasst werden, indem das verfügbare Set verwendet wird Optionen. Um beispielsweise eine Sammlung abzurufen, erhalten Sie ein "add" -Ereignis für jedes neue Modell und ein "change" -Ereignis für jede Änderung vorhanden Modell, ohne etwas zu entfernen:
collection.fetch({remove: false})
Backbone.Collection.fetch ():
%Vor% Also, was ist hier oben, Ihre übergebene Funktion wird var succees
zugewiesen.
collection[method](resp, options);
Wird aufgerufen und in Ihrem Fall ist die Methode 'reset'
.
collection.reset
muss durchlaufen und hinzugefügt werden alle deine Modelle, feuern alle Ereignisse auf dem Weg ab. Ich weiß nicht genau, was passiert, aber es geht durch collection.reset
, collection.add
, model.add
, etc ... Ich habe nicht alles verfolgt.
Ich bin mir nicht sicher, was genau das Problem ist, das tut mir leid. Ich hoffe, ich kann dir wenigstens helfen, einige Dinge auszuprobieren, vielleicht können wir es herausfinden. Die Zeile if (success) success(collection, resp, options)
ist der Aufruf Ihrer Succes-Funktion. Was Sie versuchen könnten, ist, dass Ihr Erfolgs-Callback die übergebenen Argumente akzeptiert und einige davon tröstet:
Eine andere Sache ist, ich konnte nirgendwo in der Quelle oder den Dokumenten finden, wo collection.fetch eine Add-Option benötigt. Wenn ich es verpasst habe, lass es mich wissen, ich würde es gerne sehen.
Viel Glück, lassen Sie mich wissen, was Sie finden. Es könnte sich auch lohnen, einen Schritt durch den Debugger zu machen.
Scheiße, es fällt mir auch auf, dass mir die Konsole oft die aktuellste Version von Sammlungsobjekten gezeigt hat, wenn sie nicht hätte.
versuchen Sie stattdessen, die Längen der Sammlungen zu trösten oder etwas:
%Vor%Backbone 1.0 entfernt diese Funktion und bricht Code, der davon abhängt:
Vergleiche mit:
"Wenn Sie die eingehenden Modelle zur aktuellen Sammlung hinzufügen möchten, übergeben Sie anstelle des Inhalts der Sammlung {add: true} als Option zum Abrufen."
Ich schlage vor, zu einer älteren Version von Backbone zurückzukehren, bis dieses Problem behoben ist.
Tags und Links javascript backbone.js underscore.js