需要存储为JSON的动态数据与AngularJS项目中的LocalStorage进行字符串化

时间:2017-07-11 00:38:25

标签: javascript angularjs json

我在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会很棒......

我该怎么做?

1 个答案:

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