角度更新本地存储值

时间:2017-03-20 07:54:51

标签: javascript angularjs json

我正在查看一些带有本地存储的角度示例,因为我继承了一个正在使用它的项目。

这就是我所看到的

var order;
order = userCache.get('order');
console.log('order from cache', order);

Chrome开发工具json输出

{
  "lineItems": [
    {
      "serviceLocation": {
        "verified": true,
        "formattedAddress": "2110 El Pinto Rd, Sullivan City, TX 78595",
        "address1": "2110 El Pinto Rd",
        "city": "Sullivan City",
        "state": "TX",
        "zip": "78595"
      },
      "additionalLocations": [],
      "services": {
        "electric": {
          "selectedProgramId": null,
          "utilityAndProgram": null,
          "serviceProvider": null
        },
        "naturalGas": {
          "selectedProgramId": null,
          "utilityAndProgram": null,
          "serviceProvider": null
        }
      }
    }
  ],
  "authorizedParty": {
    "firstName": "sdfsad",
    "lastName": "asdgfdsaf",
    "phone": "(222) 222-2222"
  },
  "contactPreference": "phone",
  "signature": null,
  "isNew": false
}

我想要做的只是通过添加更多数据来更新address字段。

首先,我只想尝试阅读一些数据

由于我在javascript中放入了一个名为order的对象,基于json对象结构,我不应该这样做吗?

**UPDATE**

好的,我想出这个部分.. array [0]

var orderAddress = order.lineItems[0].serviceLocation.address1;
console.log(orderAddress);    

然后如何更新该值? setItemset

在userCache上更新它看起来像这样

.service('userCache', function (CacheFactory) {
// NOTE : Used to store specific information about this user, gets cleared on logout.
return CacheFactory.createCache('userCache', {
  maxAge: 30 * 24 * 60 * 60 * 1000, // Items added to this cache expire after 30 days.
  deleteOnExpire: 'aggressive',
  storageMode: 'localStorage'
});

});

2 个答案:

答案 0 :(得分:0)

如果必须更新本地存储中的数据,通常需要:

  1. 从本地存储中解析数据
  2. 更新您要更新的条目
  3. 将数据保存在本地存储中
  4. 这是由于本地存储的字符串特性:当您保存对象,数组或任何您想要的内容时,它们将转换为字符串,因为本地存储是字符串存储

    但是既然你是一个幸运的男孩并且你正在使用Angular,那么你可以使用大量的模块来管理本地存储,而无需担心字符串化。

    我个人最喜欢的是ngStorage

    --- 编辑 ---

    好吧,使用[ { "server": "8.8.8.8", "domains": [ { "google.com": { "serial": 14, "time": 78 } }, { "intuit.com": { "serial": 23, "time": 20 } } ] }, { "server": "8.8.4.4", "domains": [ { "google.com": { "serial": 76, "time": 92 } }, { "intuit.com": { "serial": 89, "time": 45 } } ] }, { "server": "206.67.222.222", "domains": [ { "google.com": { "serial": 76, "time": 98 } }, { "intuit.com": { "serial": 59, "time": 65 } } ] } ] ,您只需按照上述步骤操作:

    1. angular-cache
    2. var data = JSON.parse(userCache.get('order'))
    3. data.lineItems[0].serviceLocation.address = *whatever*

答案 1 :(得分:0)

首先从Local Storage获取值 Updte It和agian用密钥设置更新的JSON 它会更新。

在Pure javascript中,它会像。

`var storage = {};

storage.setUpdateData = function(updatedJson){     window.localStorage.setItem("的keyName",updatedJson); }`