Ember数据:删除服务器上的记录但保留在存储中

时间:2014-09-27 14:58:08

标签: ember.js ember-data

使用Ember Data,如何删除服务器上的记录,但将其作为新的未保存记录保存在商店中?

基本上,我希望像destroyRecord之类的东西将记录保留在状态中,好像它刚刚创建了以前的属性。我一直在看状态机,但无法弄清楚如何手动设置正确的状态。只是创建一个新记录是不方便的,因为记录显示在列表中(通过关系),我希望它保持相同的位置。

2 个答案:

答案 0 :(得分:1)

Ember Data没有内置方法可以做到这一点,只需使用ajax手动发回一个删除,它比试图破解Ember-Data更简单。

答案 1 :(得分:0)

您可以直接使用适配器:

import Ember from 'ember';
import DS from 'ember-data';
const { getOwner } = Ember;

export default DS.Model.extend(

......
......

deleteOnServer: function() {
    var store = getOwner(this).lookup('service:store');
    var type = this.constructor;
    var snapshot = this._createSnapshot();
    return store.adapterFor(type.modelName).deleteRecord(store, type, snapshot);
}

使用_createSnapshot()可能会在将来的ember-data版本中中断。