简单的Ember.js`has-many`关系不起作用

时间:2019-02-25 21:25:37

标签: javascript ember.js ember-data

我遇到了针对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与之相关联,我也总是会回到0。我是用错误的方式查询吗?

image属于media的事实是否影响我如何查询hasMany中的media

谢谢

1 个答案:

答案 0 :(得分:2)

您的代码有错误。您在mediaModel.js中的hasMany定义的模型名称无效。

更改

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

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

这是固定代码的有效twiddle。看看。