2015-01-15 67 views
0

加載異步關係餘燼數據有效載荷通常包含links屬性。如何動態更新ember數據中的鏈接屬性?

{ 
    "post": { 
    "id": 1, 
    "title": "Progressive Enhancement is Dead", 
    "links": { 
     "user": "/people/tomdale" 
    }, 
    }, 
} 

在我的情況的應用程序必須創建鏈接本身由於它由用戶選擇的日期和時間操作的事實。鏈接到關係是不固定的。有沒有辦法在運行時更改模型link屬性,還是我真的需要使用Ember.$.ajax手動創建整個關係?

+0

我認爲你仍然可以傳遞id(作爲字符串)並依賴於你在適配器中定義的內容。試試也許...... – andrusieczko 2015-01-15 15:37:31

+0

感謝您的建議,但我不完全明白你的意思。我應該在哪裏通過ID?你在談論如何創建自己的關係方法? – 2015-01-15 15:42:12

+0

對不起,我的意思是在序列化程序!我會在一分鐘內寫出正確的答案 – andrusieczko 2015-01-15 15:45:22

回答

1

您可以創建一個序列化程序來自定義links字段。例如:

App.PostSerializer = DS.RESTSerializer.extend({ 
    normalizePayload: function(payload) { 
     payload.links = { 
     "user": getMyLink(payload.links, payload.id) 
     }; 
     return payload; 
    } 
}); 

其中getMyLink是您的自定義功能。

這是否解決您的問題?

+0

它可能會解決這個問題,但不是這次。我已經有一種叫做「鏈接」的關係,所以改變有效載荷調用覆蓋它。重命名它適用於整個應用程序將花費太多時間。而且,'post'嵌入到其他有效負載中時'PostSerializer'不會執行。我寧願認爲有一些ember API來插入這樣的鏈接。 – 2015-01-15 16:12:50