我遇到了针对ember数据查询数据的问题。
我有三个型号:
media
:哪个多个模型从 image
:从media
继承 note
:这是标准型号。
我正在尝试获取image
的所有note
s,但我尝试的查询不起作用。
// 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
的事实会影响我如何查询media
的hasMany
?
谢谢
您的代码有一个错误。您在MediaModel.js中的Hasmany-Definition具有无效的模型名称。
更改
notes: DS.hasMany('note', { inverse: 'noteable' }),
to
notes: DS.hasMany('note-model', { inverse: 'noteable' }),
这是固定代码的工作跨度。检查一下。