我需要能够在记录标记为删除(未保留)之后“取消删除”该记录。指南指出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
让isDeleted
与rollbackAttributes()
的行为保持一致,或“取消删除”记录的正确方法是什么?
答案 0 :(得分:1)
你遇到的问题是,你有一个新创建的记录。如果您在新记录上调用rollbackAttributes
,它将从商店中销毁。因此,要处理此问题,您必须检查它是新项还是已保存项。
如果您已经保存了记录,那么rollbackAttributes
来电就会有效。