7

ember-data を使用してオブジェクトを作成したいのですが、commit を呼び出すまで保存したくありません。どうすればこの動作を実現できますか?

4

3 に答える 3

4

transactionの定義されたtransaction.js を、 transaction_test.js対応するテストで使用できます。

ここで例を参照してください:

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​
于 2012-04-03T12:24:50.203 に答える
1

代わりに createModel を呼び出してください。

例:

// 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" });

このhttp://jsfiddle.net/Qpkz5/269/を作成しました。

于 2012-04-03T12:29:15.753 に答える
0

使用できます_create: App.MyModel._create()- モデルを独自の状態マネージャーに関連付けるため、App.store.commit()何もしません。

ただし_create「非公開」です。このユースケースにはパブリックメソッドが必要だと思います。

于 2012-05-20T04:50:49.853 に答える