我有一個數據結構如下從服務器返回我正在寫的一些過濾功能。每個過濾器組都有多個過濾器。Ember數據JSONAPI複雜屬性數據
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在這樣的結構上的工作方式嗎?
剛剛進入辦公室,並給了這個嘗試。你有它幾乎正確,但「包含」的對象需要遵循相同的JSONAPI結構作爲常規數據,即。用「id」,「type」,然後是「attributes」對象。給了我一個很好的開始讓它工作的地方。我編輯了你的答案,以包含這些變化:) –
哦,你不需要使用{embedded:'always'}。 –
D'oh,當然'included'也需要'屬性'。趕上@MalabarFront,我很高興它現在幾乎可以工作:) – Ethan