【发布时间】:2016-05-14 12:47:23
【问题描述】:
我有一些本地存储项,它们是对象列表。
console.log(localStorageService.get("kittens"));
会输出类似:
[
{"name": "fluffy", "color": "white" },
{"name": "luna", "color": "black" }
]
假设我想将 luna 的颜色更新为棕色。
var myKitten = localStorageService.get('kittens').filter(function(kitten){
return kitten.name == "luna";
})[0];
myKitten.color = "brown";
然后我不知道如何只更新本地存储的单个记录。
实际上,我正在向服务器发送更新记录的请求,但它并没有在我的应用程序中更新。
当响应返回时,我也想更新本地存储中的记录,但我似乎只能更新整个本地存储项(“小猫”)。我在docs 中看不到这样做的方法,但我觉得应该有一种方法可以做到这一点,我忽略了。
【问题讨论】:
-
我通常使用本地存储并且更新整个对象是我看到的唯一解决方法。
-
您无法更新本地存储中的特定值。您必须更新整个对象,因为它将其存储为 Key:Value 对。
-
你必须保存回localStorage,它不会自己发生。向我们展示您的
localStorageService -
还建议使用
ngStorage,它更健壮,会自动为您保存内容