Ich habe folgendes Szenario -
%Vor%Ich habe ein Modell und die jeweilige Kollektion definiert.
%Vor%Die obigen Ansichten erstellen ein einzelnes Listenelement für jedes Modell.
%Vor%Wenn Sie in WineView auf die Schaltfläche "Senden" des Formulars klicken, wird das Modell gespeichert. Die Backbone.sync-Funktion wird überschrieben.
%Vor%Mein Anliegen ist, dass das WineListView beim Speichern des Modells nicht aktualisiert wird und das neue Modell anzeigt, das hinzugefügt wurde. Genau die this.mode.bind ("add") wird nicht aufgerufen.
Ich entschuldige mich für die Ausführlichkeit der Frage. Aber das hat mich fast eine Woche lang gestört. Jede Hilfe wird sehr geschätzt.
Prost!
Der Grund, warum add nie aufgerufen wird, ist genau das
Sobald Ihr Wein wine.save();
gespeichert ist, sollten Sie eine Erfolgsfunktion hinzufügen und diese der Weinlisten-Sammlung hinzufügen
versuche das:
%Vor% Weitere Informationen zur Event-Aggregator-Idee finden Sie hier:
Routing und der Ereignisaggregator koordinieren Ansichten in backbone.js
Von dem, was ich sehen kann, fügen Sie das neue Modell niemals der Sammlung hinzu. Ein einfacher Weg, dies zu tun, wäre die Methode create
der Sammlung (vorausgesetzt, Sie haben die Sammlung verfügbar gemacht):
Wie die Dokumentation besagt
[t] Die Methode create kann entweder einen Attribut-Hash oder ein vorhandenes, nicht gespeichertes Modellobjekt akzeptieren.
Wenn Sie das neue Modell so erstellen, sollte ein add
-Ereignis für die Sammlung ausgelöst werden , wenn ich mich nicht irre.
Ein anderer Weg, der laut den Dokumenten definitiv ein add
-Ereignis auslöst (wiederum auf der Sammlung, nicht auf dem Modell!)
Fügen Sie der Sammlung ein Modell (oder ein Array von Modellen) hinzu. Feuert ein "add" Ereignis, das Sie übergeben können {still: true} zu unterdrücken.
Denken Sie in jedem Fall daran, Ihre Ereignisbindung zu ändern:
%Vor%Tags und Links javascript backbone.js