使用Ember Data,你如何调用commit?

时间:2013-01-23 21:37:25

标签: ember.js ember-data

我正在尝试使用ember的所有最后路由和数据内容构建一个简单的Todo List。你可以找到我的完整仓库here

我的店铺设置如下:

EmberTodo.Store = DS.Store.extend({
  revision: 11,
  adapter: DS.RESTAdapter.create({bulkCommit: false})
});

给我带来麻烦的代码行来自:

EmberTodo.CreateItemView = Ember.TextField.extend({
  insertNewline: function() {
    EmberTodo.Item.createRecord({description: this.get('value')});
    this.set("value", "");
  }
});

根据我的理解,调用createRecord不会创建记录,而是需要在某处调用commit()。但是,我无法弄清楚在哪里。有人有主意吗?

1 个答案:

答案 0 :(得分:2)

  

据我所知,调用createRecord不会创建记录,而是需要在某处调用commit()。但是,我无法弄清楚在哪里。有人有什么想法吗?

不确定。为了让这个工作尽可能小

EmberTodo.CreateItemView = Ember.TextField.extend({
  insertNewline: function() {
    item = EmberTodo.Item.createRecord({description: this.get('value')});
    item.get('transaction').commit();
    this.set("value", "");
  }
});

我在这里使用DS.FixtureAdapter放置了一个简化的工作示例:http://jsbin.com/ugipap/1/edit

  

完成,对吧?

有点儿。事实上,你真的不想在视图中做这种事情。考虑重构以根据情况将此逻辑移动到控制器层或路由器中。