这是ember rc1 master从3月25日开始,以及ember-data rev 12.我无法得到Model的hasMany to sideload - 侧载数据在商店中没有实现。使用默认的RESTAdapter。
App.AssetLinkGroup = DS.Model.extend({
asset_links : DS.Model.hasMany('App.AssetLink')
})
App.AssetLink = DS.Model.extend({
asset_link_group : DS.Model.belongsTo('App.AssetLinkGroup')
})
我从App.AssetLinkGroup.find(5)服务器返回的json如下(为了简洁,删除了很多基本属性,如名称/日期/等)
{
"asset_link_group": {
"asset_link_ids": [154,155],
"asset_links": [
{
id : 154,
"asset_link_group_id": 5
},
{
id : 155,
"asset_link_group_id": 5
}
]
}
}
App.AssetLinkGroup.find(5)从服务器成功加载AssetLinkGroup模型。但是,AssetLinks似乎没有在商店中实现。当我尝试App.AssetLink.all()。content时,它显示一个空数组。
此外,如果我尝试:
var algroup5 = App.AssetLinkGroup.find(5);
algroup5.get('asset_links');
它向服务器发出一个findMany调用,它告诉我它肯定在商店中没有这些记录。
为什么在加载AssetLinkGroup时,不会在商店中实现AssetLink记录?
答案 0 :(得分:4)
我会说JSON中的asset_links数组应该在根级别。
{
"asset_link_group": {
"asset_link_ids": [154,155]
},
"asset_links": [
{
id : 154,
"asset_link_group_id": 5
},
{
id : 155,
"asset_link_group_id": 5
}
]
}
答案 1 :(得分:0)
您是否已将适配器配置为侧载asset_links
中的记录?假设您使用的是RESTAdapter
,您可以执行以下操作:
DS.RESTAdapter.configure('App.AssetLink',
sideloadAs: 'asset_links'
);