gpt4 book ai didi

javascript - Angular 本地存储

转载 作者:行者123 更新时间:2023-11-30 11:56:04 25 4
gpt4 key购买 nike

大家好,我正在尝试使用 localStorage 保存一些信息,我将 $window 注入(inject)到我的服务中,并创建了一个工厂调用 $localStorage

.factory('$localStorage', ['$window', function($window) {
return {
store: function(key, value) {
$window.localStorage[key] = value;
},
get: function(key, defaultValue) {
return $window.localStorage[key] || defaultValue;
},
storeObject: function(key, value) {
$window.localStorage[key] = JSON.stringify(value);
},
getObject: function(key,defaultValue) {
return JSON.parse($window.localStorage[key] || defaultValue);
}
}
}])

我有其他工厂,在那里我使用 localStorage 工厂来保存一些收藏夹

factory("favoriteFactory", ["$resource", "baseURL", "$localStorage", function($resource, baseURL, $localStorage) {
var favFac = {};
var favorites = $localStorage.getObject("favorites", "[]");

favFac.addToFavorites = function(index) {
for (var i = 0; i < favorites.length; i++) {
if (favorites[i].id == index)
return;
}

$localStorage.storeObject("favorites", {id: index});
//favorites.push({id: index});
};

favFac.deleteFromFavorites = function (index) {
for (var i = 0; i < favorites.length; i++) {
if (favorites[i].id == index) {
favorites.splice(i, 1);
}
}
}

favFac.getFavorites = function () {
return favorites;
};

return favFac;
}])

问题是当我添加一个最喜欢的项目时,它会在我的数组中替换它自己,而不是向数组中添加一个新的项目,

我真的很感激你的帮助提前致谢

最佳答案

存储时你做错了。您正在用单个项目替换数组。还有一点需要注意,Array.prototype.push() 返回集合的长度。

enter code herefavFac.addToFavorites = function(index) {
for (var i = 0; i < favorites.length; i++) {
if (favorites[i].id == index)
return;
}
favorites.push({id: index})
$localStorage.storeObject("favorites", favorites);
//favorites.push({id: index});
};

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com