Ich verwende den lokalen Backbone-Speicher und erlebe seltsames Verhalten.Das neu gespeicherte Backbone-Modell wird nach dem Abruf nicht in der Sammlung angezeigt.
Ich habe ein Modell, und Sammlung, die definiert ist, instanziiert und hergeholt:
MyModel = Backbone.Model.extend({
localStorage: new LocalStore('example-myModels')
//note: LocalStore = Backbone.LocalStore -> https://github.com/jeromegn/Backbone.localStorage
});
MyCollection = Backbone.Collection.extend({
model : MyModel,
localStorage: new LocalStore('example-myModels')
});
var myCollection = new MyCollection();
myCollection.fetch(...);
Diese Sammlung dann als eine Liste an den Benutzer angezeigt wird. Der Benutzer kann auf „add“ ein Element in die Sammlung, die schließlich in diesem Code führt:
var newModel = new MyModel();
newModel.save(newModelAttributes, {
success: function(newlySavedModel) {
myCollection.add(newlySavedModel);
}
);
An diesem Punkt myCollection hat das neu hinzugefügte Modell und ich die Platte erfolgreich in meiner localstorage-Datenbank erstellt sehen:
Pre-Save Localstorage:
Post speichern Localstorage:
Der nächste Schritt, nachdem der Benutzer fügt der Datensatz zurück in die Liste zu gehen, bei dem die Sammelstelle wieder abgerufen wird:
myCollection.fetch();
Jetzt myCollection nicht mehr enthält der neue Datensatz. Egal, wie oft ich abrufe, der neue Datensatz wird nicht abgerufen - obwohl ich ihn in meiner localStorage-Datenbank sehen kann. Ich habe auch versucht, eine neue Instanz der Collection zu erstellen und diese zu holen, aber es liefert die gleichen Ergebnisse. Wenn ich den Browser neu lade, erscheint der neue Datensatz wie erwartet. Hat jemand eine Idee was los ist? Ich habe das Gefühl, ich grundlegende hier etwas fehlt bin ...
Ein laufendes Beispiel, das das Problem reproduziert hier verfügbar: http://jsbin.com/iyorax/2/edit (stellen Sie sicher, dass die Konsole sichtbar ist und klicken Sie auf „Run mit JS“)
Danke voraus!
Ist der neue Datensatz vorhanden, wenn Sie 'myCollection.fetch ({reset: true});'? –
kein Glück mit "reset: true" :( – moliveira
Funktioniert dies in Js Geige? Kann helfen, zu replizieren und zu diagnostizieren – prototype