2015-07-29 3 views
1

Я использую Ember 1.13.3 и ember-data 1.13.5.Данные Ember не получают отношения

У меня есть 2 модели с соотношением:

место:

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    user: DS.belongsTo('user'), 
    description: DS.attr('string'), 
    created_at: DS.attr('date'), 
    image_src: DS.attr('string') 
}); 

пользователь:

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    username: DS.attr('string'), 
    email: DS.attr('string'), 
    avatar: DS.attr('string'), 
    spots: DS.hasMany('spot') 
}); 

Сейчас я предоставляю слово во всех точках и петли над ними. Все отображает тонкость модели пятна; однако, когда я пытаюсь получить имя пользователя пользователя spot.user.username, оно не работает. Я проверил сеть, и даже запрос не отправляется в users/:user_id.

Я также попытался добавить asyn: true:

DS.belongsTo('user', {async: true}) 

, но это тоже не сработало. Есть ли новый способ делать отношения в ember 1.13? Я знаю, что вызов belongsTo в настоящее время охват, поскольку она выступает в качестве устаревания в консоли Эмбер:

атрибут
In Ember Data 2.0, relationships will be asynchronous by default. You must set `user: DS.belongsTo('user', { async: false })` if you wish for a relationship remain synchronous. 
+0

вы пробовали изменения 'spot.user.user' на 'spot.user.username'? потому что это было бы правильно. может быть, опечатка здесь? – Jeff

+0

или вы загружаете пользователей в бок о бок? или включить их в пятна-json? – Jeff

+0

@Jeff жаль, что это была опечатка. Также я не занимаюсь ни загрузкой, ни вставкой их. – ThreeAccents

ответ

0

Асинхронный должен быть определен с обеих сторон.

место:

import DS from 'ember-data'; 

    export default DS.Model.extend({ 
     user: DS.belongsTo('user', {async:true}), 
     description: DS.attr('string'), 
     created_at: DS.attr('date'), 
     image_src: DS.attr('string') 
    }); 

То же самое на пользователя:

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    username: DS.attr('string'), 
    email: DS.attr('string'), 
    avatar: DS.attr('string'), 
    spots: DS.hasMany('spot', {async: true}) 
}); 

Обсуждение по этой теме:

http://discuss.emberjs.com/t/what-is-an-async-relationship-async-true-vs-async-false/4107

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