2016-01-14 5 views
0

Я стараюсь сделать repost с отношением на исходное сообщение. Я использую объекты той же модели.Вложенные модели Ember.js

Ember: 2.2.0

Ember данные: v2.3.0

models/post.js 

export default DS.Model.extend({ 
    text: DS.attr('string'), 
    originalPost: DS.belongsTo('post', {async: false}) 
}); 

Если я создаю перепечатывать с ссылкой на исходном сообщении

let post = this.store.createRecord('post', { 
    text: 'post' 
}); 

let repost = this.store.createRecord('post', { 
    text: 'repost', 
    originalPost: post 
}); 

Я получил перекрестные ссылки, а именно: вложенная почта в репозитории, как ожидалось, и вложенная репозиция в сообщении, которую я не ожидаю.

repost.get('originalPost') -> post 

post.get('originalPost') -> repost ??? 

Кто может объяснить это поведение и как я могу избежать этого, чтобы создать только одно направленное отношение?

Спасибо!

ответ

1

При определении отношения модели к той же модели вам необходимо указать specify the inverse. кажется, что вы не хотите обратного, так что вы должны указать null:

модели/post.js

export default DS.Model.extend({ 
    text: DS.attr('string'), 
    originalPost: DS.belongsTo('post', {async: false, inverse: null}) 
}); 
+0

Он работает сейчас, пропустите этот пункт. Благодаря! – elatonsev

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