Ich möchte ein Objekt mit Ember-Daten erstellen, aber ich möchte es nicht speichern, bis ich Commit aufrufen. Wie kann ich dieses Verhalten erreichen?Temporart nicht permanentes Objekt in Ember-Daten erstellen
7
A
Antwort
4
Sie können transaction
's, definiert transaction.js mit entsprechenden Tests in transaction_test.js verwenden.
Sehen Sie ein Beispiel here:
App.store = DS.Store.create(...);
App.User = DS.Model.extend({
name: DS.attr('string')
});
var transaction = App.store.transaction();
transaction.createRecord(App.User, {
name: 'tobias'
});
App.store.commit(); // does not invoke commit
transaction.commit(); // commit on store is invoked
1
Aufruf create statt!
Beispiel:
// This is a persisted object (will be saved upon commit)
var persisted = App.store.createRecord(App.Person, { name: "Brohuda" });
// This one is not associated to a store so it will not
var notPersisted = App.store.createModel(App.Person, { name: "Yehuda" });
Ich habe diese http://jsfiddle.net/Qpkz5/269/ für Sie gemacht.
0
Sie können _create
: App.MyModel._create()
verwenden - es wird das Modell mit seinem eigenen Zustandsmanager verknüpfen, so dass App.store.commit()
nichts tun wird.
_create
ist jedoch "privat". Ich denke, dass es für diesen Anwendungsfall eine öffentliche Methode geben muss.
+0
Hier ist die Github Frage: https://github.com/embers/data/issues/259 –
Sie verwenden 'ember-latest.js' aus dem Download-Bereich des Datenrepositorys. Diese Datei wurde vor 2 Monaten (2011-01-30) hochgeladen und ist veraltet. Ich habe diese Methode im Code von Master nicht gefunden. – pangratz
ich meine die 'ember-data-last.js' ... – pangratz
@pangratz hat recht, ich hatte nicht bemerkt, dass das geändert wurde. Kudos ihn – Luan