こんにちはみんなは、私は私のサービスに$ウィンドウを注入し、私は私がの私達を作る他の工場を持って工場出荷時のコールの$のlocalStorage角度の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);
}
}
}])
を作成しました問題は、代わりに配列に新しいものを追加することで、私はお気に入りのアイテムを追加するとき、それは私の配列自体を置き換え
012で、いくつかのお気に入り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;
}])
を節約するためにのlocalStorage工場私は本当に助けを寄付します
ありがとうございました。私のエラーを見ました –
Array.prototype.push()はアイテムを返しません。それは長さを返す –
@mJunaidSalaat Junaidさん、ありがとう、私は実際に配列 '[1,2,3]'で '4'を押しようとしましたが、それは私に4を返しました。修正をありがとう。否定投票には悪い:P –