[英]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.