Двусторонние ассоциации один к одному в Ember Data

В моем приложении у меня есть двусторонние отношения 1: 1 между моделями. При попытке установить связь между ними я получаю...

Uncaught RangeError: Maximum call stack size exceeded

... и след повторяется

OrderedSet.forEach
Map.forEach
DS.Model.Ember.Object.extend.toJSON
DS.Model.Ember.Object.extend.addBelongsToToJSON
DS.Model.Ember.Object.extend.toJSON
Map.forEach
OrderedSet.forEach

Соответствующие части кода:

App.Employee = DS.Model.extend( {
    // ... 
    recruitment:DS.belongsTo( 'App.Recruitment', { embedded: true } )
} );

App.Recruitment = DS.Model.extend( {
    // ...
    employee:DS.belongsTo( 'App.Employee', { embedded: true } ),
} );

// ...

recruitment.set('employee', employee);
employee.set('recruitment', recruitment);
App.store.commit(); // <= boom

Это то, что Ember Data должен поддерживать, или я неправильно подхожу к этому?


person rickard2    schedule 12.10.2012    source источник


Ответы (2)


В настоящее время Ember-Data не поддерживает однозначные ассоциации.

person Tchak    schedule 12.10.2012
comment
Спасибо. Я полагаю, это функциональность, которая будет доступна в стабильной версии? - person rickard2; 12.10.2012
comment
Я нашел эту проблему github, где эта проблема обсуждается. Похоже, мне просто нужно реализовать какой-то обходной путь на данный момент. - person rickard2; 09.11.2012

Это было исправлено, и теперь это простой процесс привязки моделей друг к другу:

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

App.Profile = DS.Model.extend({
  user: DS.belongsTo('user')
});

Выше приведен пример из http://emberjs.com/guides/models/defining-models/

person ansorensen    schedule 24.05.2014