2013-02-07 4 views
1

У меня возникли проблемы с получением Ember для удаления записи, которая имеет отношение к отношениям. У меня есть несколько моделей, установленные с отношением один к одному, как это:Ember deleteRecord слишком много рекурсии

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

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

Это мой метод deleteUser на моем UserController

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 (это, «счетом», нулем) на пользовательский объект. Внутри Ember.set(), когда он попадает в вышеуказанный код, он находит ссылку на объект пользователя и вызывает на нем набор вызовов, который затем находит на нем учетную запись и вызовы, которые находят на ней пользователь и вызовы, установленные на нем. и т. д.

Если это ошибка в Ember, кто-нибудь может помочь мне с исправлением или обходным решением? Вот jsFiddle моего примера

ответ