[英]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.