2017-10-08 62 views
0

我有一張我想動態更新的數據表。Ember - 從燼數據初始化表數據,然後通過websocket進行更新

當用戶轉到頁面時,我想用我的rails後端數據初始化表格。輕鬆使用模型鉤子和餘燼數據。

然後我想保持這個信息刷新使用連接的websocket流。

我應該如何管理這個。我應該使用websocket更新來更新模型(而不是將數據提交到後端)?表數據是組件中的一個對象數組,我應該從模型的setupController函數中初始化它,然後直接更新數組?

有沒有簡單的方法將websocket數據JSON映射到模型或表格數組中?

回答

0

是的,你應該可以用Ember Data做到這一點。警告:我沒有試過這個。

某處你打開你的websocket流並添加一個「onmessage」處理程序。在該處理程序中,您將從服務器接收有效內容,您可以在其中使用store.pushPayload()來更新商店中的記錄。如果記錄(由id字段標識)已在商店中,則將被替換。否則它將被添加爲新記錄。如果您正在當前模板中顯示記錄,則只需在新記錄被按下時看到這些值發生變化。

This Ember guide page描述了這種情況,您從服務器流式傳輸數據,並且希望看到用戶界面的即時更新。

補充閱讀:the API for pushPayload

+0

我設法完成這一點。除了串行器綁定到模型外,它工作良好。後端給出了一種JSON格式和websocket的不同之處。我放棄了擔心,只是改變了websocket格式。 –

+0

如果你不想使用序列化器,你可以使用'store.push()'而不是'store.pushPayload()'。 –