每个User对象一个事务

时间:2013-04-16 18:01:35

标签: ember.js ember-data

当我save User时,所有当前的脏Users都已提交。我必须更改save仅提交特定User的交易吗?

app.js

App = Ember.Application.create();

App.Store = DS.Store.extend({
  revision: 12,
  adapter: 'DS.FixtureAdapter'
})

App.Router.map(function() {
  this.resource('users', function() {
    this.resource('user', { path: ':user_id' })
  })
});

App.UsersRoute = Ember.Route.extend({
  model: function() {
    return App.User.find();
  }
});

App.UserController = Ember.ObjectController.extend({
  startEditing: function() {
    this.transaction = this.get('store').transaction();
    this.transaction.add(this.get('content'));
  },

  save: function( user ) {
    user.transaction.commit();
  }  
})

App.User = DS.Model.extend({
  lastName: DS.attr('string')
})

App.User.FIXTURES = [{
  id: 1,
  lastName: "Clinton"
}, {
  id: 2,
  lastName: "Obama"
}] 

1 个答案:

答案 0 :(得分:0)

我的猜测是永远不会调用startEditing,否则这可能没问题。

另一个选项是您保存多次记录。保存记录后,会将其移回商店的默认事务。对save的任何后续调用实际上都会提交商店的交易。