У меня возникли проблемы с получением 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 моего примера