假设我有一个 hasMany 项的ParentObject。我想在我的添加路由中实现我的取消功能,它将回滚所有内容。
简而言之,我有:
IsNew 和 IsDirty 的父对象
并且可能......
项目[]也将是 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}.
如果有人能弄清楚可能有什么问题,并解释我做错了什么,我将非常感激!
编辑**
我玩弄交易并清除关系但没有成功......
答案 0 :(得分:2)
我刚刚碰到这个。对我而言,这是因为我在执行回滚时有观察员在操作。我必须通过在函数中添加一个检查来检查“model.isDeleted”来防止它们被触发。如果不是,我会通过,否则阻止它。这似乎解决了我。