假设我有一个 有许多 项的 ParentObject。我想在我的 Add 路由中实现取消功能,这将回滚所有内容。
简而言之,我有:
IsNew 和 IsDirty 的父对象
并且可能...
Items[] 也将是 IsNew 和 IsDirty
所以基本上,我只是想杀死我的 NewController 中的那些...
这是错误的代码:
this.get("items").forEach(function(item)
{
item.deleteRecord();
});
this.get("model").rollback();
// Some redirection stuff
虽然看起来很简单,但它崩溃了......
这是崩溃的控制台输出
Uncaught Error: Attempted to handle event `didSetProperty` on <App.ParentObject:ember572:fixture-0> while in state root.deleted.saved. Called with {name: number, oldValue: undefined, originalValue: undefined, value: undefined}.
如果有人能找出可能有问题的地方并解释我做错了什么,将不胜感激!
编辑 **
我试过交易并清除关系但没有成功...
最佳答案
我刚遇到这个。对我来说,这是因为我在执行回滚时有观察员在运行。我不得不通过在函数中添加一个检查来检查“model.isDeleted”来防止它们被触发。如果不是,我让它通过,否则阻止它。这似乎为我解决了这个问题。
关于ember.js - EmberJS 使用 HasMany 取消(回滚)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20852285/