rollbackAttributes()未更改isDeleted

时间:2018-02-07 18:44:40

标签: ember.js ember-data

我需要能够在记录标记为删除(未保留)之后“取消删除”该记录。指南指出rollbackAttributes()是执行此操作的正确方法。

但是,以下表示rollbackAttributes()不会影响记录中的isDeleted属性。我使用的是Ember 2.15。

console.log(record.get('isDeleted')); // false
console.log(record.get('hasDirtyAttributes')); // false
console.log(record.get('dirtyType')); // created
console.log(record.get('currentState.stateName')); // root.loaded.created.uncommitted

record.deleteRecord();

console.log(record.get('isDeleted')); // true
console.log(record.get('hasDirtyAttributes')); // false
console.log(record.get('currentState.stateName')); // root.deleted.saved
console.log(record.get('dirtyType')); // deleted

record.rollbackAttributes();

console.log(record.get('isDeleted')); // true
console.log(record.get('hasDirtyAttributes')); // false
console.log(record.get('currentState.stateName')); // root.deleted.saved
console.log(record.get('dirtyType')); // deleted

isDeletedrollbackAttributes()的行为保持一致,或“取消删除”记录的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

你遇到的问题是,你有一个新创建的记录。如果您在新记录上调用rollbackAttributes,它将从商店中销毁。因此,要处理此问题,您必须检查它是新项还是已保存项。

如果您已经保存了记录,那么rollbackAttributes来电就会有效。