刷新浏览器时 sessionStorage 消失了 - Javascript

sessionStorage is gone when browser is refreshed - Javascript

我试图在 sessionStorage 中保留一些数据,但如果我刷新页面或离开 link 然后返回,sessionStorage 将不再存在。

我是 sessionStorage 的新手,很抱歉,如果这是一个明显的修复。

基本上我将一个数组存储到 sessionStorage 中。

  $scope.addPlant = function(plant) {
    for (i = 0; i < $scope.userPlantList.length; i++) {
      if ($scope.userPlantList[i] === plant) {
        alert("You have already added this plant");
        return;
      }
    }
    $scope.userPlantList.push($scope.currentPlant);
    sessionStorage.setItem("Plants",JSON.stringify($scope.userPlantList));
  };

然后当我想查看所有存储的内容时

  $scope.retreiveList = function() {
    var retrieved = sessionStorage.getItem("Plants");
    $scope.userPlantList = JSON.parse(retrieved);
  }

当我根本不刷新 page/app 时,这工作正常。

问题:如何让我的 sessionStorage 在 refresh/immediate 重新访问期间持续?

通过查看开发者工具检查数据是否真的消失了

如果您使用 chrome:F12 -> 资源选项卡 -> 会话存储。

sessionStorage 与浏览器选项卡一起使用。每当您关闭选项卡时,会话存储数据都会被清除。

如果您想要跨选项卡共享的内容,请查找 localStorage。

我建议使用来自 angular

$window 提供商
// set
$window.sessionStorage.setItem('Plants', angular.toJson($scope.userPlantList));
// get
$scope.userPlantList = angular.fromJson($window.sessionStorage.getItem('Plants')) || [];