我遇到了针对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
?
谢谢
答案 0 :(得分:2)
您的代码有错误。您在mediaModel.js中的hasMany定义的模型名称无效。
更改
notes: DS.hasMany('note', { inverse: 'noteable' }),
到
notes: DS.hasMany('note-model', { inverse: 'noteable' }),
这是固定代码的有效twiddle。看看。