如何更新localStorage项目?

时间:2016-05-05 13:35:29

标签: javascript angularjs local-storage local

我遇到的问题是缓存对象与正确的数据不相似,所以我认为我可以将最新版本推送到浏览器缓存,它将解决我的问题。

如何使用新对象更新localStorage?因此,如果我有一个控制器,那么评估已更新。如何将该评估对象推送到localStorage?

5 个答案:

答案 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);