создать временный непостоянный объект в Ember-Data - PullRequest
7 голосов
/ 03 апреля 2012

Я хочу создать объект, используя ember-data, но я не хочу сохранять его, пока не вызову commit. Как мне добиться этого поведения?

Ответы [ 3 ]

4 голосов
/ 03 апреля 2012

Вы можете использовать transaction, определенные транзакции.js с соответствующими тестами в транзакции_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​
1 голос
/ 03 апреля 2012

Вместо этого вызовите 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/ для вас.

0 голосов
/ 20 мая 2012

Вы можете использовать _create: App.MyModel._create() - он свяжет модель с собственным менеджером состояний, поэтому App.store.commit() ничего не сделает.

Однако _create является "частным". Я думаю, что для этого варианта использования должен быть публичный метод.

...