Angularjs覆盖localstorage中的对象

时间:2016-10-25 10:22:10

标签: angularjs

我有一个ng-repeat列表。 ng-repeat中的每个项目附近都有一个按钮。当我单击正确存储在localstorage中的按钮对象id时。但是,如果我单击另一个localstorage更改为新的对象ID。有没有办法将对象ID保存到像array这样的localstorage?

我使用此代码

将对象添加到localstorage中
localStorage.setItem("mac_id_local", JSON.stringify(mac_id));

我已经在一个函数中使用它了。我必须在if else声明中这样做。如果响应为1,则必须将值存储在localstorage中。如果响应为0,则必须从localstorage中删除值。

if ($scope.response == 1) {
   $scope.veriler[index].isFavori = true;
   localStorage.setItem("mac_id_local", JSON.stringify(mac_id));
}
else if ($scope.response == 0) {
  $scope.veriler[index].isFavori = false;
  delete localStorage.mac_id_local;
}

我只想在localstorage中创建数组,例如this => mac_id_local =" 131,154,185,195"

我希望我能正确地告诉我问题。

3 个答案:

答案 0 :(得分:0)

您可以使用数组变量并向其添加项目并将其添加到存储中,

$scope.ids= [];
$scope.ids.push(mac_id);
localStorage.setItem("ids", JSON.stringify($scope.ids));

答案 1 :(得分:0)

$scope.items=[];
$scope.items.push(mac_id);    
if ($scope.response == 1) {
  $scope.veriler[index].isFavori = true;
// storing our array as a string
localStorage.setItem("mac_id_local", JSON.stringify($scope.items));
}
 else if ($scope.response == 0) {
  $scope.veriler[index].isFavori = false;
delete localStorage.mac_id_local;
}

// retrieving our data and converting it back into an array
var retrievedData = localStorage.getItem("mac_id_local");
var movies2 = JSON.parse(mac_id_local);

答案 2 :(得分:0)

localstorage存储键值对,同时将数据存储到localstorage对象中,访问时应使用JSON.stringify()JSON.parse()

您可以使用此工厂:

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

另外,请记住,在每次setObject调用时,您必须在使用此工厂时设置整个对象(而不仅仅是特定键)。