javascript - 将对象存储在本地存储中

标签 javascript local-storage

Hello,在某个函数中,我有代码将对象 {} 保存到 localForage,它只不过是异步 localStorage

if(vm.convertedColors[vm.convertedColors.length - 1].colorInRGB &&
   vm.convertedColors[vm.convertedColors.length - 1].colorInHSL &&
   vm.convertedColors[vm.convertedColors.length - 1].colorInHEX) {
        $localForage.setItem('colors', {
            inHSL: vm.convertedColors[vm.convertedColors.length - 1].colorInHSL,
            inHEX: vm.convertedColors[vm.convertedColors.length - 1].colorInHEX,
            inRGB: vm.convertedColors[vm.convertedColors.length - 1].colorInRGB
        }).then(function() {
            $rootScope.$emit('localForageUpdated');
        });
}

这会在单击按钮后运行并存储对象颜色。它工作得很好,但是当我更改颜色并再次单击按钮时,我希望它保存新的颜色对象,而不是替换它现在的工作方式。

所以我想保存colors1 colors2 colors3等等。它可以是对象数组。 s.o.s

最佳答案

将其保存为数组。然后在保存下一个之前,获取旧值,将新对象插入其中,然后保存。

$localForage.getItem('colors').then(function(colors) {
    colors = colors || []; // initialize as empty array on the first run
    colors.push({
        inHSL: vm.convertedColors[vm.convertedColors.length - 1].colorInHSL,
        inHEX: vm.convertedColors[vm.convertedColors.length - 1].colorInHEX,
        inRGB: vm.convertedColors[vm.convertedColors.length - 1].colorInRGB
    });
    $localForage.setItem('colors', colors).then(function() {
        $rootScope.$emit('localForageUpdated');
    });
});

关于javascript - 将对象存储在本地存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46475585/

相关文章:

javascript - 使用 jQuery 确定页面 anchor (#) 访问何时发生

javascript - 将 javascript 与 jquery 混合

javascript - 如何循环遍历几个月的数组

javascript - 从 knex-promise 中获取值(value)

javascript - HTML5 本地存储与 session 存储

javascript - 如果项目已存在并且更改按钮状态,如何从本地存储中存储的数组中删除项目

javascript - angularjs本地存储无法正常工作?

javascript - 那么在获取时正确处理错误捕获?

c - 如何使用 pthreads 访问本地存储

javascript - 使用应用程序级别解析 AngularJS 的动态指令模板