2013-12-16 143 views
0

我正在使用Ember數據0.14。在Ember數據中找到沒有關係的許多關係

我有這樣的數據:

{ 
    "product": { 
    "id": 185588, 
    "name": "USB MIDI Adapter" 
    }, 
    "images": [ 
    { 
     "url": "google.com", 
     "product_id": 185588 
    }, 
    { 
     "url": "google.com2", 
     "product_id": 185588 
    } 
    ] 
} 

而且這些機型:

App.Image = DS.Model.extend({ 
    url: DS.attr('string'), 
    product_id: DS.belongsTo('App.Product') 
}); 

App.Product = DS.Model.extend({ 
    name: DS.attr('string'), 
    images: DS.hasMany('App.Image') 
}); 

DS.RESTAdapter.map('App.Product', { 
    images: { embedded: 'always' } 
}); 

但我不能獲得與工作有關,對產品的「圖像」是空的。這不是它應該如何工作?

+0

您可以更新您的問題,以顯示您的版本的燼數據?從0.14到1.0.0-beta.x有一些中斷變化,並且可能會混淆使用錯誤版本的用戶。 –

回答

2

您需要嵌入images陣列內的數據:

{ 
    "product": { 
    "id": 185588, 
    "name": "USB MIDI Adapter", 
    "images": [{ 
     "id": 1, 
     "url": "google.com", 
     "product_id": 185588 
    }, 
    { 
     "id": 2, 
     "url": "google.com2", 
     "product_id": 185588 
    }] 
    }   
} 

http://jsfiddle.net/marciojunior/TEgK7/(使用灰燼數據0.14)

+0

這不適用於較新版本的ember數據 – Kingpin2k

+0

是的,你是對的@ kingpin2k。我請他用當前版本更新這個問題。可能是0.14或0.13,因爲Adapter.map(...) –

+0

我會嘗試升級到1.0.0測試版,那麼我應該使用kingpin2k的方法與單獨的對象並鏈接到id:s? – Christoffer

1

你錯過了產品的映射,嵌入式由於暫時的問題而被禁用。 https://github.com/emberjs/data/blob/master/TRANSITION.md

{ 
    "product": { 
    "id": 185588, 
    "name": "USB MIDI Adapter", 
    "images":["imageid1", "imageid2"....] 
    }, 
    "images": [ 
    { 
     "id": "imageid1", 
     "url": "google.com", 
     "product_id": 185588 
    }, 
    { 
     "id": "imageid2", 
     "url": "google.com2", 
     "product_id": 185588 
    } 
    ] 
} 

http://emberjs.jsbin.com/OxIDiVU/40/edit

+0

我試過了,但我仍然沒有任何關係(除了我刪除嵌入的東西之外,Ember的東西沒有改變):'{ 「product」:{ 「id」:185588, 「name」:「2NY USB MIDI Kabel /適配器 - IN OCH UT」, 「圖像」:[1 ,] }, 「圖像」:[{ 「ID」:1, 「URL」: 「google.com」, 「PRODUCT_ID」:185588 },{ 「ID」:2, 「URL」: 「google.com2」, 「PRODUCT_ID」:185588 }]}' – Christoffer

+0

你有很多和屬於應該只是圖像/產品,您使用的ED版本是什麼? – Kingpin2k

+0

上面添加的示例,http://emberjs.jsbin.com/OxIDiVU/40/edit – Kingpin2k