Ember-data Store的currentTransaction和defaultTransaction有什么不同?

时间:2013-07-05 02:46:30

标签: ember.js ember-data

一般问题:
我想了解当前交易(currentTransaction)和默认交易(defaultTransaction)。

具体问题:
我在Ember控制器this.get('model').save()this.get('store').commit()been comparing

this.get('model').save()最终会调用Ember-data Store的get(this, 'currentTransaction').commit().,请参阅github

this.get('store').commit()最终会调用Ember-data Store的get(this, 'defaultTransaction').commit(),请参阅github

在更新单个编辑记录的情况下,它们似乎完全相同。如何以不同的方式使用它们?

1 个答案:

答案 0 :(得分:3)

  

我想了解当前事务(currentTransaction)和默认事务(defaultTransaction)

  • currentTransaction 适用于计划保留的记录,通常是通过model.save()
  • defaultTransaction 用于保留未明确添加到其他交易的记录
  

在更新单个编辑记录的情况下,它们似乎完全相同。如何以不同的方式使用它们?

在这种情况下,他们会做同样的事情。

一般来说,model.save()可能是一个更好的选择,因为1)如果有其他未保存的记录,它不会有意想不到的副作用; 2)在多个模型上调用save()将导致只有一个commit() ,使批量保存成为可能。

有点相关:

Difference between model.save() versus model.get('store').commit()