2016-09-14 42 views
0

我有以下变量这是很容易转化为JSON字符串:

var data = { 
    ball: { 
     colour: "", 
     size: "", 
     price: "" 
    }, 
    toys: [] 
} 

在我的控制器我想这个变量添加到像范围:

$scope.data = angular.copy(data) 

然后,我希望它在$ sessionStorage的存储,如:

$sessionStorage.data = angular.toJson($scope.data); 

后,页面刷新$scope.data再次为空。有任何想法吗?

+0

是没可能与$的sessionStorage?如果没有为什么和$ localStorage有什么不同? @SaEChowdary – thigi

+0

刷新你的数据后,在'$ sessionStorage.cv'中,而不是'$ scope.data'。最后一行代码仅将数据序列化到sessionStorage中。如果代码不存在,则需要将代码从sessionStorage反序列化出去。就像'$ scope.data = $ scope.data || $ sessionStorage.cv'。 –

+0

你能更精确一点吗?甚至可以存储一个数组而不是一个普通变量? @MikeMcCaughan – thigi

回答

0

这是我的代码是如何工作的:

$scope.$storage = $sessionStorage; 

    if (typeof $scope.$storage.data !== 'undefined') { 
     $scope.data = $scope.$storage.data; 
    } else { 
     $scope.data = angular.copy(data); 
     $scope.$storage.data = $scope.data; 
    } 

更短的解决办法是:

$scope.cv = $scope.$storage.cv || angular.copy(cv); 
    $scope.$storage.cv = $scope.cv; 
+0

'$ scope.cv = $范围。$ storage.cv || angular.copy(cv);' – nabin

+0

这不起作用!你仍然需要:'$ scope。$ storage.data = $ scope.data;'为else! – thigi

相关问题