我正在查看一些带有本地存储的角度示例,因为我继承了一个正在使用它的项目。
这就是我所看到的
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);
然后如何更新该值? setItem
或set
?
在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'
});
});
答案 0 :(得分:0)
如果必须更新本地存储中的数据,通常需要:
这是由于本地存储的字符串特性:当您保存对象,数组或任何您想要的内容时,它们将转换为字符串,因为本地存储是字符串存储
但是既然你是一个幸运的男孩并且你正在使用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
}
}
]
}
]
,您只需按照上述步骤操作:
angular-cache
var data = JSON.parse(userCache.get('order'))
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); }`