我想使用ember-data创建一个对象,但我不想保存它直到我调用commit。我怎样才能实现这种行为?
答案 0 :(得分:4)
您可以在transaction.js中使用transaction
定义的transaction_test.js和相应的测试。
查看示例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 :(得分: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" });
答案 2 :(得分:0)
您可以使用_create
:App.MyModel._create()
- 它会将模型与自己的状态管理器相关联,因此App.store.commit()
将不会执行任何操作。
但是,_create
是“私有的”。我认为这个用例需要有一个公共方法。