我正在將我的餘燼數據存儲緩存到本地存儲。在第一次加載時,我查詢服務器將數據加載到存儲中,然後將其加載到本地存儲中。在後續的頁面加載中,我從localstorage中提取數據並將其加載到商店中。我可以使用pushMany方法做到這一點。如何從ember-data存儲中提取標準化數據?
該商店的pushMany
方法需要標準化的數據。將來自服務器的有效載荷通過模型序列化程序進行標準化。一旦規範化的數據存儲在商店中,似乎有理由相信應該有可能將規範化的數據提取出來。
那麼,如何從商店中提取標準化數據?
每種型號都有一個_data
屬性。 '_data'屬性只適用於平面模型。更復雜的模型_data
屬性包含實例化的關係。
我想避免不止一次序列化/反序列化。
This是我目前的實現。 toJson
方法的問題是它必須加載所有關聯,包括尚未解析的異步關係。我認爲有一個根本問題是關於如何用數據解析關係主鍵/外鍵。
我不知道如果這是你的意思,但你可以從商店記錄,而不使用所有發出請求的服務器 - 通過http://emberjs.com/guides/models/finding-records /#toc_finding-all-records-of-a-type 「要獲取已加載到商店中的記錄列表,而不發出其他網絡請求,請改爲使用全部。」 'var posts = this.store.all('post');''// =>無網絡請求 – Craicerjack
這裏是一個要點https://gist.github.com/arenoir/528c4d77c9398e519984#file-local-cache- js-L47 –
這適用於沒有關係的模型。國際海事組織應該有一個提取原始標準化數據的模型。 –