2014-01-21 2 views
1

я самостоятельно ссылаясь модель определяется как:создание записей самообразования со ссылкой модели, вызывающие ошибку

 App.Answer = DS.Model.extend({ 
      name: DS.attr('string'), 
      parentAnswer: DS.belongsTo('answer'), 
      childAnswers: DS.hasMany('answer') 
     }); 

Я не знаю, как определить обратное свойство, чтобы получить вещи работать. Вот jsbin того, что у меня есть: http://jsbin.com/oKezUkaz/1/

Если мы добавим группу (нажав кнопку «Добавить группу») мы получаем ошибку в консоли говоря:

Assertion failed: You defined the 'childAnswers' relationship on App.Answer, but multiple possible inverse relationships of type App.Answer were found on App.Answer. Look at http://emberjs.com/guides/models/defining-models/#toc_explicit-inverses for how to explicitly specify inverses 

ответ

1

В этом случае вам нужно определить inverse на обоих, или он застревает в петле, идущей вниз по одному из путей. Документация Ember Data отсутствует на этом, но должна работать после того, как ED дойдет до твердого 1.0.

App.Answer = DS.Model.extend({ 
    name: DS.attr('string'), 
    parentAnswer: DS.belongsTo('answer', {inverse: 'childAnswers'}), 
    childAnswers: DS.hasMany('answer', {inverse: 'parentAnswer'}) 
}); 

http://jsbin.com/oKezUkaz/5/edit

+0

Спасибо за тонну снова. –

0

Ваша модель должна быть определена как этот

App.Parent = DS.Model.extend({ 
     answer: DS.belongsTo('parant') 
     }); 
     App.Child = DS.Model.extend({ 
     answer: DS.hasMany('child') 
     }); 

     App.Answer = DS.Model.extend({ 
      name: DS.attr('string'), 
      parent: DS.belongsTo('answer'), 
      child: DS.belongsTo('answer') 
     }); 

Я не могу понять, что вы хотите для того чтобы достигнуть, но я это это правильный путь.

+0

См. В моем случае, ответ может иметь много детских ответов. Мне нужно иметь возможность добавлять дочерний ответ на любом уровне иерархии, поэтому у меня есть родительский ответ в моей модели, потому что он делает добавление ответов на сиблинге на одном уровне очень просто. –

+0

В этом случае chlid должен быть hasMany тоже. – Stakoov

Смежные вопросы