我正在使用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'分支?
答案 0 :(得分:3)
我假设你想要
var arr = sessionStorage.getItem("array");
$scope.array = arr?JSON.parse(arr):[];
...
sessionStorage.setItem("array",JSON.stringify($scope.array));