1

一般问题:
我想了解当前事务 ( currentTransaction) 和默认事务 ( defaultTransaction) 的概述。

具体问题:
我一直在比较Ember 控制器this.get('model').save()this.get('store').commit().

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

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

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

4

1 回答 1

3

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

  • currentTransaction用于计划持久化的记录,通常通过 model.save()
  • defaultTransaction用于持久化未显式添加到另一个事务的记录

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

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

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

有点相关:

model.save() 与 model.get('store').commit() 之间的区别

于 2013-07-05T03:55:29.177 回答