簡體   English   中英

灰燼deleteRecord太多的遞歸

[英]Ember deleteRecord too much recursion

我無法讓Ember刪除具有一個Abouts關系的記錄。 我有幾個建立了一對一關系的模型,如下所示:

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()內部,當按下上面的代碼時,它會找到對用戶對象的引用並在其上調用set ..然后,該對象會在其上找到該帳戶並對其進行調用..在該帳戶上會找到該用戶並對其進行調用..等等

如果這是Ember中的錯誤,有人可以幫助我解決問題或解決方法嗎? 這是我的示例的jsFiddle

看來這是一個疏忽。 在github上的請求請求為我解決了這個問題https://github.com/emberjs/data/pull/715

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM