2012-04-03 11 views

Odpowiedz

4

Można użyć transaction 's, zdefiniowanych transaction.js z odpowiednimi testami w transaction_test.js.

Zobacz przykład 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

połączeń createModel zamiast!

Przykład:

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

Zrobiłem to http://jsfiddle.net/Qpkz5/269/ dla Ciebie.

+0

Używasz 'ember-latest.js' z sekcji plików do pobrania w repozytorium danych. Ten plik został załadowany 2 miesiące temu (2011-01-30) i jest nieaktualny. Nie znalazłem tej metody w kodzie z master. – pangratz

+0

Mam na myśli 'ember-data-latest.js' ... – pangratz

+0

@pangratz ma rację, nie zauważyłem, że to się zmieniło. Kudos mu – Luan

0

Można użyć _create: App.MyModel._create() - zostanie powiązany model z własnym menedżerem stanu, więc App.store.commit() nic nie zrobi.

Jednak _create jest "prywatny". Wydaje mi się, że w tym przypadku należy zastosować publiczną metodę.

+0

Oto kwestia Github: https://github.com/emberjs/data/issues/259 –

Powiązane problemy