Я пытаюсь сделать небольшое Угловое веб-приложение, где я устанавливаю элементы массива в $ window.localStorage, затем на другой странице получаю массив и показываю его.
Я сделал кнопку «удалить» для каждого элемента массива, но когда я его нажимаю, он очищает весь локальный хранилище, а не только один конкретный элемент.
HTML
<table class="table table-striped">
<tr ng-repeat="product in productss track by $index">
<td>{{product.name}}</td>
<td><button class="glyphicon glyphicon-remove-circle shoplisticons-remove" ng-click="deleteProduct(product)"></button></td>
</tr>
</table>
JS
helloApp.controller("StorageCtrl", function($scope, $window, productService) {
$scope.productss = productService.getData();
$scope.deleteProduct = function(product) {
var index = $scope.productss.indexOf(product);
$scope.productss.splice(index, 1);
$window.localStorage.removeItem($window.localStorage.key(product));
};
});
//Array, add and get:
helloApp.service('productService', function($window) {
var KEY = 'helloApp.SelectedValue';
var addData = function(newObj) {
var mydata = $window.localStorage.getItem(KEY);
if (mydata) {
mydata = JSON.parse(mydata);
} else {
mydata = [];
}
mydata.push(newObj);
$window.localStorage.setItem(KEY, JSON.stringify(mydata));
};
var getData = function() {
var mydata = $window.localStorage.getItem(KEY);
if (mydata) {
mydata = JSON.parse(mydata);
}
return mydata || [];
};
return {
addData: addData,
getData: getData
};
});
Надеется, что я был достаточно специфичен.
Спасибо! Я принял ур ответ :) – Aleksi