2017-02-07 3 views
0

это с "Ember-данными": "~ 2.11.1"Проблемы доступ 'некоторые' асинхронные данных в Эмбере

У меня есть модель канала, который включает в себя 'выходы'

outputs: DS.hasMany('output', { 
    async: true 
}), 

и модель вывода включает в себя «идентичность»

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

в маршруте выходного сигнала (который ниже канала), я делать это в модели

model() { 
    let channel = this.modelFor('channel').channel 
    let outputs = channel.get('output') 
    return Ember.RSVP.hash({ 
     channel: channel, 
     outputs: outputs 
    }) 
} 

, и это позволяет мне видеть все выходы, принадлежащие каналу, как и ожидалось.

, где у меня проблема, - это тождества, относящиеся к выходу.

теперь тождества могут быть разделены на выходах, так, например, тождество может быть «YouTube» и там может быть 3 выхода с той же идентичности «YouTube»

, что я вижу в том, что тот, из этих выходов есть данные «youtube», но остальные 2 выхода видят .get ('identity') равным нулю.

Неправильно ли я установил модель или модельный крючок? Или это делает что-то, что мешает мне снова получить идентификаторы (какое-то кэширование?)

+0

Возможно, это проблема с ответами вашего сервера. Может быть, вы отправили пустые отношения? Это будет кешировано, да. – Lux

+0

ответ сервера был найден. В ответе jsonapi раздел «включено» включает в себя одну копию каждого уникального идентификатора – IanI

+0

, можете ли вы показать ответ сервера? О, и я думаю, что его 'channel.get ('output')' not 'channel.get ('output')'. Это опечатка? – Lux

ответ

0

проблема решена!

в модели Output мне нужно, чтобы добавить атрибут идентичности:

inverse: null 

процитировать Ember Guide, Models, Relationships, Explicit Inverses

Отношения без обратного могут быть обозначены как таковые, включая {обратное: нуль }.

, который совсем не ясен, но Ember Data предполагает, что существует от 1 до 1 отношения где-то, что на самом деле не существует. Когда Ember Data пытается синхронизировать эти обратные отношения, он часто устанавливает другие конфликтующие отношения в null.

Чтобы исправить это, вы можете явно указать Ember Data, нет обратных отношений, используя inverse: null.

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