2016-12-01 18 views
0

我在本地存儲上有一個對象數組。我希望在通過「toSync = true」標記時與服務器「同步」。

所以我filter我的陣列只保留obj.toSync==trueforEach我做一個$http.put與設置obj.toSync=false,一切都很好,並更新到$localStorage一個成功回調。或很好..

由於與可能已經改變了一些其他領域的把服務器響應,我改變了成功回調做angular.merge(obj, rsp.data)之前obj.toSync=false

但是由於我做了angular.mergeobj沒有更新$localStorage。當然,我可以再次明確地存儲它,但我想知道爲什麼在將$localStorage傳遞給一堆函數之前。

或多或少,如果angular.merge正在將「參考」更改爲obj

回答

0

$localStorage從本地存儲返回對象,本地存儲是您可以在每個現代瀏覽器中找到的數據庫。

該數據庫以字符串形式存儲所有內容。這些數據不會改變,除非你故意這樣做。每次更新對象時,您別無選擇,只需更新localStorage即可。

+0

上帝,你在代碼中有更深層次的「SetXyz(id,object)」,明確地添加/替換到'$ localStorage'中。這讓我感到難過,因爲實際上所有的「同步」都是由對象本身產生的。現在,我必須將'$ localStorage'作爲第三個參數傳遞給'sync'函數(或者將所有內容移動到某個服務並使對象貧血)。無論如何感謝 –

+0

@匿名什麼意味着貧血? (這裏不是英語的人)。 順便說一句,我更新了你的標題,以更好地解決問題/答案 –

+0

@ Jean-Philippe,_anemic_我的意思是他們根本沒有任何行爲,他們只包含數據(akka DTOs)。 –

相關問題