我在angularjs 1.5.x中有应用程序,我将动态数据库驱动的问题答案保存到localstorage。目前我没有JSON格式,我不喜欢
.factory('sessionService', ['$http', function ($http) {
return {
set: function (key, value) {
return localStorage.setItem(key, JSON.stringify(value));
},
get: function (key) {
return JSON.parse(localStorage.getItem(key));
},
destroy: function (key) {
return localStorage.removeItem(key);
},
};
}]);
虽然这“有效”,但最终我的硬编码答案会产生动态问题并且不是JSON,这使得很难将决策纳入下一个问题
sessionService.set('agentid', agent.agentid);
看看最终如何成为50个答案中的一个,将ADD和UPDATE添加到JSON对象并将其字符串化为localStorage会很棒......
我该怎么做?
答案 0 :(得分:1)
为什么不在ram中保留json的副本?
.factory('sessionService', ['$http', function ($http) {
var temp = {};
return {
set: function (value) {
temp = value;
return localStorage.setItem("json_key", JSON.stringify(temp));
},
get: function () {
temp = JSON.parse(localStorage.getItem("json_key"));
return temp;
},
destroy: function (key) {
return localStorage.removeItem("json_key");
},
update: function(key, value) {
temp.key = value;
set(temp);
return temp;
}
};
}]);
这里" json_key"是在localStorage中获取值的字符串键。
temp是本地存储的任何时刻的ram副本。
你可以用get获取temp。
更新返回新值。
值应该是新的json(我的意思是你要存储的整个json)。