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()
,它们都会被批处理到同一个提交中。请看我的回答: