Простые отношения Ember.js `has-many` не работают - PullRequest
0 голосов
/ 26 февраля 2019

Я сталкиваюсь с проблемой запроса данных к данным Ember.

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

media: какие несколько моделей наследуются от image: какие наследуются отmedia note: это стандартная модель.

Я пытаюсь получить все note из image, но запрос, который я пытаюсь, не работает.


// imageModel.js
import Ember from 'ember';
import DS from 'ember-data';
import MediaModel from 'models/mediaModel';

export default MediaModel.extend({ 
    fileName: DS.attr('string'),
    fileExt: DS.attr('string'),

    url: DS.attr('string'),
});


// mediaModel.js
import DS from 'ember-data';

export default DS.Model.extend({
    notes: DS.hasMany('note', { inverse: 'noteable' }),
});


// noteModel.js
import DS from 'ember-data';
import Ember from 'ember';

export default DS.Model.extend({
    category: DS.attr('string'),
    text: DS.attr('string'),

    image: DS.belongsTo('image'),
    noteable: DS.belongsTo('media-model', { polymorphic: true }),
});

Как только у меня есть image, я делаю image.get('notes.length'), но даже если с изображением действительно связаны note s, я всегда получаю 0.Я запрашиваю это неправильно?

Влияет ли тот факт, что image принадлежит media, как я могу запросить hasMany из media?

Спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

Ваш код содержит ошибку.Ваше определение hasMany в mediaModel.js имеет недопустимое имя модели.

Измените

notes: DS.hasMany('note', { inverse: 'noteable' }),

на

notes: DS.hasMany('note-model', { inverse: 'noteable' }),

Вот рабочая twiddle фиксированного кода.Проверьте это.

...