Reputation: 318
I want create an object using ember-data, but I don't want to save it until I call commit. How can I achieve this behavior?
Upvotes: 7
Views: 2952
Reputation: 271
You can use _create
: App.MyModel._create()
- it will associate the model with its own state manager, so App.store.commit()
won't do anything.
However, _create
is "private". I think there needs to be a public method for this use case.
Upvotes: 0
Reputation: 402
Call createModel instead!
Example:
// 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" });
I've made this http://jsfiddle.net/Qpkz5/269/ for you.
Upvotes: 1
Reputation: 16143
You can use transaction
's, defined transaction.js with corresponding tests in transaction_test.js.
See an example 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
Upvotes: 4