我們的服務器返回與請求不完全相關的額外的側載記錄,這些記錄應該有效,但會導致商店中的重複記錄和奇怪的UI行爲。 (http://jsfiddle.net/jgillick/agYMQ/)Ember Data:Sideloaded記錄會在商店和怪異行爲中創建重複項
爲了簡化它,想象兩個模型:兒童和玩具。孩子有許多玩具。當你給孩子添加一個玩具時,XHR不僅迴應新的玩具記錄,而且還負責兒童物品和玩具清單。這樣,更多的UI可以通過一個請求來更新。 JSON最終看起來是這樣的:
{
"toy": {
"id": 1,
"name": "doll",
"quantity": 1
},
"children": [
{
"id": 0,
"name": "Ben",
"quantity": 1,
"toys": [0, 1]
}
],
"toys": [
{
"id": 0,
"name": "car",
"quantity": 1
},
{
"id": 1,
"name": "doll",
"quantity": 1
}
]
}
由於某些原因,這會導致該燼存儲在它的記錄數組中有3個玩具。這不應該發生,因爲這些項目有ID。因此,加載具有重複ID的記錄應該會導致它覆蓋前一個。相反,當我查看商店的記錄數組時,記錄是重複的 - ID和全部。
另一個奇怪的效果是當你添加第一個玩具時,在模板中爲它創建列表項,但所有的值都是未定義的。在添加第二個玩具後,UI將按預期更新。嘗試jsfiddle:http://jsfiddle.net/jgillick/agYMQ/
是否真的不可能側載像這樣的額外記錄?有沒有解決方案,還是我只是忽略了一些東西?