Diferença entre model.save () versus model.get ('store'). Commit ()
Qual é a diferença entre
// 'this' is the controller
this.get('model').save();
e
// 'this' is the controller
this.get('model').get('store').commit();
? Dos pequenos testes que fiz, ambos me deram os mesmos resultados.Qual deles devo usar?
Eu olhei para o primeiro e ele chama
DS.Model = Ember.Object.extend(
...
save: function() {
this.get('store').scheduleSave(this);
var promise = new Ember.RSVP.Promise();
this.one('didCommit', this, function() {
promise.resolve(this);
});
return promise;
},
Então a questão então se torna, qual é a principal diferença entrethis.get('store').scheduleSave(this)
ethis.get('store').commit()
?
DS.Store = Ember.Object.extend(DS._Mappable, {
...
scheduleSave: function(record) {
get(this, 'currentTransaction').add(record);
once(this, 'flushSavedRecords');
},
...
/**
This method delegates committing to the store's implicit
transaction.
Calling this method is essentially a request to persist
any changes to records that were not explicitly added to
a transaction.
*/
commit: function() {
get(this, 'defaultTransaction').commit();
},
Não tenho certeza qual é o melhor. Estou inclinado para salvar () porque parece envolver a loja.
(Eu não consegui encontrar esses códigos no github, não sei se o github ou a versão amazonaws do emberjs é o mais recente. Aqui estão as versões similares no github:salvar do modelo () quais chamadasagendaSave da loja ()ecommit da loja ())