Diferencia entre model.save () versus model.get ('store'). Commit ()
Cuál es la diferencia entre
// 'this' is the controller
this.get('model').save();
y
// 'this' is the controller
this.get('model').get('store').commit();
? De las pocas pruebas que hice, ambas me dieron los mismos resultados.¿Cuál debo usar?
Miré en el primero, y llama
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;
},
Entonces la pregunta es, ¿cuál es la principal diferencia entrethis.get('store').scheduleSave(this)
ythis.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();
},
No estoy seguro de cuál es mejor. Me estoy inclinando hacia guardar () porque parece rodear la tienda.
(No pude encontrar estos códigos en github, no sé si el github o la versión de amazonws de emberjs es la última. Aquí están las versiones similares en github:Guardar modelo () que llamahorario de la tiendaGuardar ()ycompromiso de la tienda ())