違いは何ですか
// 'this' is the controller
this.get('model').save();
と
// 'this' is the controller
this.get('model').get('store').commit();
? 私が行った小さなテストのうち、どちらも同じ結果が得られました。どちらを使用する必要がありますか?
私は最初のものを調べました、そしてそれは呼び出します
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;
},
this.get('store').scheduleSave(this)
そこで質問は、との主な違いは何this.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();
},
どちらが良いかわかりません。私は save() に傾いています。なぜなら、それは店を包み込むように見えるからです。
(これらのコードを github で見つけることができませんでした。github または emberjs の amazonaws バージョンが最新かどうかはわかりません。github の同様のバージョンは次のとおりです。ストアの scheduleSave( )を呼び出すモデルの save()と、ストアのコミット() )