1

这是截至 3 月 25 日的 ember rc1 master,以及 ember-data rev 12。我无法让模型的 hasMany 侧载 - 侧载的数据不会在商店中实现。使用默认的 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 记录没有在商店中实现?

4

2 回答 2

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
   }
  ]
 }
于 2013-03-25T23:09:41.483 回答
0

您是否已将适配器配置为旁加载记录asset_links?假设您正在使用RESTAdapter,您将执行以下操作:

DS.RESTAdapter.configure('App.AssetLink',
    sideloadAs: 'asset_links'
);
于 2013-03-25T22:13:27.080 回答