3

ember-data 的 store'defaultTransaction'到底是get(this, 'defaultTransaction').commit();什么?

4

1 回答 1

3

取自源代码内联文档

此方法将保存委托给存储的隐式事务。调用此方法本质上是请求保留对未显式添加到事务的记录的任何更改。

由于您可以创建一个新事务来控制您的记录的持久化方式,假设您不这样做 - 这就是defaultTransaction进来的情况。换句话说,每次您对记录执行一些 CRUD 时都需要一个事务,但是如果您不指定一个,则使用商店的defaultTransaction

为了更清楚,请参阅createRecord此处获取的方法:

createRecord: function(type, properties, transaction) {
  properties = properties || {};

  // Create a new instance of the model `type` and put it
  // into the specified `transaction`. If no transaction is
  // specified, the default transaction will be used.
  var record = type._create({
    store: this
  });

  transaction = transaction || get(this, 'defaultTransaction');
  ...

transaction = transaction || get(this, 'defaultTransaction');如您所见,代码行显示了这一切,如果没有为刚刚创建的记录指定事务,则将defaultTransaction使用该记录。

希望能帮助到你。

于 2013-06-27T07:21:26.223 回答