Die Sammlung fetch der Backbone-Sammlung (add: true) aktualisiert die Sammlung nicht

8
%Vor%

Die Sammlung wird nicht aktualisiert. Nach dieser Funktion werden die Ereignisse ausgelöst und die neuen Objekte werden auf dem Bildschirm gezeichnet. Das Problem ist, dass die Sammlung die neuen Modelle nicht hinzugefügt hat.

    
TIMEX 09.03.2013, 03:36
quelle

4 Antworten

21

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})

    
Radu 14.04.2013 05:05
quelle
0

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:

%Vor%

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%     
nackjicholson 09.03.2013 11:38
quelle
0

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.

    
Yinxu 02.04.2013 03:35
quelle
0

im Backbone 1.0 müssen Sie den Reset von Hand auslösen:

%Vor%     
freestyle21 11.12.2013 12:05
quelle