我遇到的问题是缓存对象与正确的数据不相似,所以我认为我可以将最新版本推送到浏览器缓存,它将解决我的问题。
如何使用新对象更新localStorage?因此,如果我有一个控制器,那么评估已更新。如何将该评估对象推送到localStorage?
答案 0 :(得分:7)
要使用本机JavaScript执行此操作,您可以执行以下操作:
localStorage.setItem('itemKey', JSON.stringify(yourObject));
var item = JSON.parse(localStorage.getItem('itemKey'));
在angular的上下文中,您应该将localStorage服务作为localStorage的包装并将其注入您的服务或控制器。或者您可以注入$window
并直接使用它:$window.localStorage
答案 1 :(得分:0)
如果对象是JSON格式(不确定Angular是否使用不同的格式),您可以使用setItem()
和getItem()
方法更新和检索本地存储项目!
例如摘自以下帖子: http://thejackalofjavascript.com/storing-objects-html5-local-storage/
var me = {name:'myname',age:99,gender:'myGender'};
localStorage.setItem("user",me);
//fetch object
console.log(localStorage.getItem("user")); // will return "[object Object]"
答案 2 :(得分:0)
您可以使用功能齐全的Angular模块angular-local-storage
AngularJS模块,可让您访问本地浏览器 使用cookie后备存储
设置强>
./executedfile inputargument.txt
获取强>
function thread_proc():
for_ever:
do_things
function stop_my_thread():
TerminateThread(...)
答案 3 :(得分:0)
setItem将无法工作,它将在localStorage中创建另一个具有相同名称的项目
直接使用
localStorage.item =(您想要在项目中进行的任何更改)
答案 4 :(得分:0)
专门针对this duplicate question的提问者的响应:
LocalStorage只能存储字符串,这就是为什么要在存储对象之前对其进行字符串化。要将存储的字符串作为对象进行操作,可以将其传递给JSON.parse
(假设它是正确的JSON格式)。然后,要存储修改后的版本,您需要将其转换回字符串。
// Creates JSON-formatted object, converts it to a string and stores the string as "ship"
const ship = { name: "black pearl", captain: "Jack Sparrow" };
const originalStringifiedForStorgage = JSON.stringify(ship);
localStorage.setItem("ship", JSON.stringify(ship));
// Retrieves the string and converts it to a JavaScript object
const retrievedString = localStorage.getItem("ship");
const parsedObject = JSON.parse(retrievedString);
// Modifies the object, converts it to a string and replaces the existing `ship` in LocalStorage
parsedObject.name = "newName";
const modifiedndstrigifiedForStorage = JSON.stringify(parsedObject);
localStorage.setItem("ship", strigifiedForStorage);