2016-03-22 7 views
0

Ich möchte, dass mein Modell eine eindeutige generierte ID in einem bestimmten Format hat.Wie initialisiert man Modellattribute nur zum Zeitpunkt des Speicherns?

Ich habe versucht, dies in Backbone.Model.initialize-Methode zu tun. https://gist.github.com/nirmaljpatel/7bbc891966f0bd1dbee5

Allerdings wird auch initialize auf Collection.fetch aufgerufen.

Wie kann ich eindeutige Ids nur bei der ersten Initialisierung zuweisen?

+0

Warum würden Sie das gleiche Modell zweimal initialisieren? Sie können entweder das Modell ** oder ** die Sammlung holen. – Tholle

+0

initialize wird nur für neue Modelle, die mit dem Abruf geliefert wurden, nur dann abgerufen, wenn Sie bestimmte Optionen übergeben. Können wir den Code in Frage stellen? –

+0

Dies ist im Zusammenhang mit Appcelerator, wo Modell und Sammlungen in SQLite (anstelle von REST-Server) gespeichert werden. Der Code sollte auf dem verknüpften Text sichtbar sein. Das Modell wird korrekt initialisiert, wenn ich eine erste model.save(); Bei einer späteren Collection.fetch(), die von SQLite zurückgelesen wird, wird die Initialize-Methode erneut ausgelöst. –

Antwort

0

In Ihrer initialize() Funktion verwenden Sie set(), aber synchronisieren Sie die Änderung mit der SQLite-Datenbank. Wenn das Modell das nächste Mal abgerufen wird (z. B. über die Sammlung), ist es immer noch leer und wird neu gesetzt. Anstelle von set() sollten Sie save() verwenden.