1

これは、3月25日現在のember rc1マスター、および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は次のとおりです(簡潔にするために、name / date / etcなどの基本的な属性の多くが削除されています)

 {
 "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 に答える