angularjs - 如何在sessionStorage中存储数组?

时间:2017-02-27 13:53:33

标签: javascript angularjs arrays session-storage

我正在使用HTML5和AngularJS开发一个网站,在控制器内部我访问数据库并初始化一个数组$scope.array

然后我将初始化的数组保存在会话中:

sessionStorage.array = $scope.array;

如果sessionStorage中存在该数组,我想加载sessionStorage副本,而不是定义一个空数组。

我是这样做的:

if(sessionStorage.array)
        $scope.array = sessionStorage.array;
else
        $scope.array = [];

因此$scope.array是我通过ng-repeat向HTML呈现的数组。

但我的问题是第一次刷新后,$scope.array对象变成一个空数组(在刷新之前,它是用数据库中的值初始化的)

如何在会话中保存数组,以便它不会到达'else'分支?

1 个答案:

答案 0 :(得分:3)

我假设你想要

var arr = sessionStorage.getItem("array");
$scope.array = arr?JSON.parse(arr):[];

...

sessionStorage.setItem("array",JSON.stringify($scope.array));