Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度更新本地存储值_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 角度更新本地存储值

Javascript 角度更新本地存储值,javascript,angularjs,json,Javascript,Angularjs,Json,当我继承了一个正在使用本地存储的项目时,我看到了一些使用本地存储的示例 这就是我所看到的 var order; order = userCache.get('order'); console.log('order from cache', order); Chrome开发工具json输出 { "lineItems": [ { "serviceLocation": { "verified": true, "formattedAddress"

当我继承了一个正在使用本地存储的项目时,我看到了一些使用本地存储的示例

这就是我所看到的

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
}
我想做的就是通过添加更多数据来更新
地址
字段

所以首先我只是想读一些数据

既然我在javascript中放入了一个名为
order
,基于json对象结构的对象,我就不能这样做吗

**UPDATE**
好的,这部分我算出来了。。数组[0]

var orderAddress = order.lineItems[0].serviceLocation.address1;
console.log(orderAddress);    
然后我如何更新该值<代码>设置项或
设置

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'
});

}))

当您必须更新本地存储中的数据时,通常需要:

  • 解析本地存储中的数据
  • 更新要更新的条目
  • 将数据保存在本地存储器中
  • 这是由于本地存储的字符串特性造成的:当您保存对象、数组或任何您想要的内容时,将转换为字符串,因为本地存储是字符串存储

    但是,因为您是一个幸运的孩子,而且您使用的是Angular,所以有很多模块可以用来管理本地存储,而无需担心字符串化

    我个人最喜欢的是

    ---编辑---

    使用
    angular cache
    您只需按照上述步骤操作即可:

  • var data=JSON.parse(userCache.get('order'))
  • data.lineItems[0].serviceLocation.address=*无论什么*
  • userCache.put('order',data)

  • 首先从本地存储获取值 Updte It和agian使用键设置更新的JSON 它将更新

    在纯javascript中,它将类似于

    `var存储={}

    storage.setUpdateData=函数(updatedJson){ setItem(“keyName”,updatedJson);
    }`

    什么是userCache?它是一个库还是一个引用LocalStorage的库?您需要用编辑的数据保存对象,然后设置LocalStorage,(我假设
    userCache.set('order')
    )我猜
    userCache.set('order',order')
    ,在您更改了
    对象之后
    @DenisTsoi它是本地存储,我用我的特定代码发布了代码thx的更新,代码您用代码解释吗?因为本地存储没有“退出日期”,您可能在处理cookie,而不是本地存储。但是,我们需要知道CacheFactory是什么样子,以帮助您战胜我不知道该模块,但您可以查看编辑。希望它能帮助您忽略特定于角度的语法,即纯javascript。