Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 对于余烬数据,如何调用commit?_Ember.js_Ember Data - Fatal编程技术网

Ember.js 对于余烬数据,如何调用commit?

Ember.js 对于余烬数据,如何调用commit?,ember.js,ember-data,Ember.js,Ember Data,我正试图建立一个简单的待办事项列表,使用所有的最后路线和数据的恩伯材料。你可以找到我的全部回购协议 我的店铺是这样设置的: EmberTodo.Store = DS.Store.extend({ revision: 11, adapter: DS.RESTAdapter.create({bulkCommit: false}) }); 给我带来麻烦的代码行来自这里: EmberTodo.CreateItemView = Ember.TextField.extend({ insertN

我正试图建立一个简单的待办事项列表,使用所有的最后路线和数据的恩伯材料。你可以找到我的全部回购协议

我的店铺是这样设置的:

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()
。然而,我不知道在哪里。有人有什么想法吗

据我所知,调用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的简化工作示例:

完成了,对吗


有点。问题是,你真的不想从一个角度做这种事情。考虑重构,将此逻辑移入控制器层,或者根据情况将路由器移动到可能的位置。p> 谢谢你的及时答复!这完全解决了问题!但是出于好奇,什么样的方式可以将其冒泡到控制器中?@earnold您有一个用于此视图的控制器(可能是
EmberTodo.ItemController
),其方法是
createItem
。然后,在您看来,调用
this.get('controller').createItem({description:this.get('value')})
.Hi@Mike,我有一个问题,在官方的Ember TODO示例中,他们使用
model.save()
提交chagne,那么
model.save()
model.get('transaction').commit()之间的区别是什么呢
controller.get('store').commit()
controller.get('store').commit()将提交控制器存储的默认事务。model.get('transaction').commit()提交的是模型的事务。如果你只有一个商店,还没有创建一个交易,那么这些都是一样的
model.save()
不会立即提交,而是在下一次运行循环时安排保存模型。因此,如果在多个模型上调用
model.save()
,它们都会被批处理到同一个提交中。请看我的回答: