Ember.js 使用include的嵌套关系

Ember.js 使用include的嵌套关系,ember.js,ember-data,Ember.js,Ember Data,我正在写一个余烬应用程序来显示餐厅的菜单。这些数据被组织为一家餐厅,它有许多菜单部分,这些菜单部分本身有许多项目 在我的路线中,我使用findRecord加载顶级餐厅记录,并设置包含部分和项目的include。服务器生成以下JSONAPI: { “链接”:{ “向上”:http://localhost/api/restaurants", “自我”:http://localhost/api/restaurants/0b27fd96-90e8-11e7-81c2-08002787e7fb" }, “

我正在写一个余烬应用程序来显示餐厅的菜单。这些数据被组织为一家餐厅,它有许多菜单部分,这些菜单部分本身有许多项目

在我的路线中,我使用findRecord加载顶级餐厅记录,并设置包含部分和项目的include。服务器生成以下JSONAPI:

{
“链接”:{
“向上”:http://localhost/api/restaurants",
“自我”:http://localhost/api/restaurants/0b27fd96-90e8-11e7-81c2-08002787e7fb"
},
“数据”:{
“类型”:“餐厅”,
“id”:“0b27fd96-90e8-11e7-81c2-08002787e7fb”,
“属性”:{
“标题”:“制作食品”,
“联系电话”:“+1-555-1234”,
“餐厅地址”:“化装,地址F4K 3ED”,
“最低订单”:500,
“交付成本”:250
},
“关系”:{
“菜单部分”:{
“链接”:{
“相关”:http://localhost/restaurants/0b27fd96-90e8-11e7-81c2-08002787e7fb/menu-sections"
},
“数据”:[
{
“类型”:“菜单部分”,
“id”:“23760716-1b75-4880-bae4-a6daaef3fc98”
}
]
}
}
},
“包括”:[
{
“类型”:“菜单部分”,
“id”:“23760716-1b75-4880-bae4-a6daaef3fc98”,
“属性”:{
“标题”:“测试部分”,
“说明”:“这是一个测试部分。”
},
“关系”:{
“菜单项”:{
“链接”:{
“相关”:http://localhost/menu-sections/23760716-1b75-4880-bae4-a6daaef3fc98/menu-items"
},
“数据”:[
{
“类型”:“菜单项”,
“id”:“a62e2ae0-326b-4838-b5ba-ffa102fcafb1”
}
]
}
},
“链接”:{
“自我”:http://localhost/menu-sections/23760716-1b75-4880-bae4-a6daaef3fc98"
}
},
{
“类型”:“菜单项”,
“id”:“a62e2ae0-326b-4838-b5ba-ffa102fcafb1”,
“属性”:{
“食品名称”:“试验食品”,
“价格”:350美元,
“很热”:没错,
“是素食者”:错,
“包含坚果”:false
},
“链接”:{
“自我”:http://localhost/menu-items/a62e2ae0-326b-4838-b5ba-ffa102fcafb1"
}
}
]
}
在ember中,我将具有适当关系的模型定义为:

//restaurant.js
导出默认DS.Model.extend({
标题:DS.attr(),
联系人号码:DS.attr(),
RestaurantadAddress:DS.attr(),
交货成本:DS.attr(),
最小顺序:DS.attr(),
menuSections:DS.hasMany('menu-section')
});
//menu-section.js
导出默认DS.Model.extend({
标题:DS.attr(),
描述:DS.attr(),
餐厅详情:DS.belongsTo(“餐厅”),
items:DS.hasMany('menu-item')
});
//menu-item.js
导出默认DS.Model.extend({
foodName:DS.attr(),
价格:DS.attr(),
Is素食者:DS.attr(),
isHot:DS.attr(),
containsNuts:DS.attr(),
菜单操作:DS.belongsTo('menu-section')
});
按照我的路线,我会:

let restaurant=this.get('store').findRecord('restaurant','0b27fd96-90e8-11e7-81c2-08002787e7fb',{include:'menuSections,menuSections.items');
但是,据我所知,在加载菜单部分对象时,菜单项不会被加载

根据我的研究,服务器发出的JSONAPI是正确的


我是做错了什么,还是这根本不受余烬数据的支持?

所以问题似乎是:

"relationships": {
                "menu-items": {

我错误地认为我应该在这里使用复数类型,但它需要与菜单部分模型中的名称匹配,该模型是
,但需要是
菜单项
,,因此问题似乎是:

"relationships": {
                "menu-items": {

我错误地认为我应该在这里使用该类型的复数形式,但它需要与菜单部分模型中的名称相匹配,该模型是
items
,但需要是
menuItems

谢谢。我在寻找嵌套关系,就像菜单项一样谢谢。我在寻找嵌套关系,就像菜单项一样