繁体   English   中英

将对象存储在本地存储中

[英]Store objects in local storage

您好,我在某些函数中提供了将对象{}保存到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');
        });
}

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

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

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

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

只需将颜色存储为一个数组,并在要推送新颜色时推送到该数组即可。 然后将阵列推回本地存储。

if (vm.convertedColors[vm.convertedColors.length - 1].colorInRGB &&
    vm.convertedColors[vm.convertedColors.length - 1].colorInHSL &&
    vm.convertedColors[vm.convertedColors.length - 1].colorInHEX) {

    $localForage
        .getItem("colors")
        .then((colors) => {
            colors = colors || [];
            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
            });
            return $localForage.setItem("colors", colors);
        })
        .then((err) => {
            if (err) {
                console.error(err);
            }
            return $localForage.getItem("colors")
        })
        .then((colors) => {
            console.log(colors);
        });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM