gpt4 book ai didi

angularjs - Angular 更新本地存储单个对象

转载 作者:行者123 更新时间:2023-12-02 11:26:29 25 4
gpt4 key购买 nike

我有一些本地存储项目,它们是对象列表。

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 中没有看到这样做的方法,但觉得应该有一种方法可以做到这一点,但我忽略了。

最佳答案

本地存储值保存为字符串。

所以你必须像这样保存它:

var kittens = [
{"name": "fluffy", "color": "white" },
{"name": "luna", "color": "black" }
]

// Save array in local storage as string
localStorage.setItem("kittens",JSON.stringify(kittens));

// Get back item "kittens" from local storage
var kittensFromLocalStorage = JSON.parse(localStorage.getItem("kittens"));

// Change value
kittensFromLocalStorage[1].name = "jasmine";

// Save the new item with updated value
localStorage.setItem("kittens",JSON.stringify(kittensFromLocalStorage));

或者您可以使用一些支持库,如 LocalForage

关于angularjs - Angular 更新本地存储单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35208948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com