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/