如何在使用ember-data创建记录时更新现有记录

时间:2014-10-31 19:10:34

标签: ember.js persistence ember-data

当我尝试创建模型实例时

record = this.store.createRecord('model', { /* whatever */ });
record.save();

我的API 更新已经存在的后端记录,而不是创建新记录。 API返回HTTP 200 [ok](也可能是202 [接受])而不是201 [created]。 如果已存在同一记录的实例,那么在商店中创建此记录的余烬方式是什么?

现在如果我“创建”一条结果更新现有记录X次的记录,我最终在我的余烬数据存储中重复了相同的记录(具有相同的ID)X次。

1 个答案:

答案 0 :(得分:1)

当您使用createRecord时,您告诉Ember将新记录添加到您的商店。

如果您想要更新记录,首先需要将记录提取到商店中:

this.store.find('model', id).then(function(record) {
  record.set('property', 'value');
  record.save();
});

http://emberjs.com/api/data/classes/DS.Store.html#method_createRecord

也许您正在寻找this.store.update(...),具体取决于您的具体需求:http://emberjs.com/api/data/classes/DS.Store.html#method_update