使用Ember Data,如何删除服务器上的记录,但将其作为新的未保存记录保存在商店中?
基本上,我希望像destroyRecord
之类的东西将记录保留在状态中,好像它刚刚创建了以前的属性。我一直在看状态机,但无法弄清楚如何手动设置正确的状态。只是创建一个新记录是不方便的,因为记录显示在列表中(通过关系),我希望它保持相同的位置。
答案 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版本中中断。