2013-03-25 82 views
1

這是從3月25日開始的ember rc1 master,以及ember-data rev 12.我無法獲得Model的hasMany sideload - 該側載數據在商店中未實現。使用默認的RESTAdapter。在裝載數據中加載hasMany關係時遇到麻煩?

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返回JSON(5)如下(帶有很多像名稱/日期/等爲簡潔移除的基本屬性的)

{ 
"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()。內容時,它顯示一個空數組。

而且,如果我嘗試:

var algroup5 = App.AssetLinkGroup.find(5); 
algroup5.get('asset_links'); 

它使findMany調用這說明我絕對沒有在店裏這些記錄的服務器。

當我加載AssetLinkGroup時,爲什麼AssetLink記錄沒有在商店中實現?

回答

4

我想說的是,asset_links陣列中的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 
    } 
    ] 
} 
+0

是的,誤讀了文檔,並把它的asset_links放在了錯誤的級別。謝謝。 – inconduit 2013-03-26 12:58:29

+1

答案中沒有語法錯誤嗎? 「asset_link_ids」之後的逗號不應該在「asset_link_group」的結尾之後實際上是[154,155]嗎? – RunnerRick 2013-04-04 17:42:45

+0

好抓,謝謝@RickRoth :) – 2013-04-05 06:47:34

0

您是否配置了適配器來載入asset_links中的記錄?假設你正在使用RESTAdapter,你會做這樣的事:

DS.RESTAdapter.configure('App.AssetLink', 
    sideloadAs: 'asset_links' 
); 
+0

我認爲只有當AssetLink不是與您要求的「主」模型相關聯時纔會發生這種情況。 – 2013-03-26 13:17:17

+0

啊哈,我沒有意識到這一點。接得好。 – ahmacleod 2013-03-26 15:28:51