javascript - Ember删除记录太多递归

标签 javascript recursion ember.js ember-data

我在让 Ember 删除具有“belongsTo”关系的记录时遇到问题。我有几个模型设置为一对一关系,如下所示:

App.User = DS.Model.extend({
    account: DS.belongsTo('App.Account')
    ...
});

App.Account = DS.Model.extend({
    user: DS.belongsTo('App.User'),
    ...
});

这是我的 UserController 上的 deleteUser 方法

deleteUser: function() {
    user = this.get('model');
    var transaction = App.store.transaction();
    transaction.add(user);
    user.deleteRecord();
    transaction.commit();
    this.transitionTo('users');
}

当到达 user.deleteRecord(); 时我在控制台中收到错误“太多递归”。尝试逐步解决问题时,我发现主 ember.js 文件中的这部分代码发生了无限循环

var meta = obj[META_KEY], desc = meta && meta.descs[keyName],
    isUnknown, currentValue;
if (desc) {
    desc.set(obj, keyName, value);
} else {
    ....
}

deleteRecord 调用clearRelationships,后者在用户对象上调用Ember.set(this, "account", null)。在 Ember.set() 内部,当它遇到上面的代码时,它会找到对用户对象的引用并对其进行调用设置.. 然后查找帐户并对其进行调用设置.. 查找用户并对其进行调用设置..等等

如果这是 Ember 中的错误,任何人都可以帮助我修复或解决方法吗?这是jsFiddle我的例子

最佳答案

看来这是一个疏忽。 github 上的这个拉取请求为我解决了这个问题 https://github.com/emberjs/data/pull/715

关于javascript - Ember删除记录太多递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755900/

相关文章:

javascript - Bing map API - 删除图钉

javascript - Angular Ngfor,触发点击第 n(x) 项

javascript - 如何获取转到另一个页面上的特定 div 的链接

c++ - 使用递归的组合函数C++

c - 如何结束递归函数?

javascript - EmberController 的 content 属性应该在修改之前设置

javascript - 如何像 Ember.js 模板一样将 "escape-press"声明到 HTML 中?

javascript - 使用 javascript 从 iframe 中的数组填充选择选项下拉列表

node.js - 在 Ember.js View 中查找重复数据的来源

mysql - 带循环计数器的递归查询