对于我正在编写的某些过滤器功能,我有一个从服务器返回的数据结构如下。每个过滤器组都有许多过滤器。
data: [
{
type: "filter-group",
id: "556d7f5fa1f9de08500ef4e8_1",
attributes: {
name: "Colour",
created-date: "0001-01-01T00:00:00Z",
active: true,
filters: [
{
id: "556d7f5fa1f9de08500ef4e8_1_1",
name: "Red",
created-date: "0001-01-01T00:00:00Z",
active: true
},
{
id: "556d7f5fa1f9de08500ef4e8_1_2",
name: "Blue",
created-date: "0001-01-01T00:00:00Z",
active: true
},
{
id: "556d7f5fa1f9de08500ef4e8_1_3",
name: "Green",
created-date: "0001-01-01T00:00:00Z",
active: true
}
]
}
}
]
我有这样的模型:
// models/filter-group.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
active: DS.attr('boolean'),
client: DS.belongsTo('client', { embedded: 'always' }),
filters: DS.hasMany('filter', { embedded: 'always' })
});
和:
// models/filter.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
active: DS.attr('boolean'),
createdDate: DS.attr('date'),
filterGroup: DS.belongsTo('filter-group', { embedded: 'always' })
});
我是使用 JSONAPI 的新手,所以我不确定我的数据设置是否是解决此问题的正确方法。我正在尝试遍历过滤器组,然后在每个过滤器组内循环通过其可用的过滤器,使用以下把手模板:
{{#each filterGroups as |filterGroup|}}
<h6>{{filterGroup.name}}</h6>
{{#each filterGroup.filters as |filter|}}
-- Filter output here --
{{/each}}
{{/each}}
但是每个 filterGroup.filters 对象都是空的。我在这里做错了什么?我是否完全误解了 JSONAPISerializer 在这样的结构上的工作方式?