我有一个令牌生成器功能, 我必须在每个http调用中传递token参数,因此即使在刷新时我也需要完整地存储令牌值并使用它。 这是我的代码 -
$scope.accessTokenFunction=function() {
data={
}
$http.post('API_url',data, config)
.success(function(data, status) {
$scope.PostDataResponse = data;
$rootScope.access_token=$scope.PostDataResponse.access_token;
console.log($rootScope.access_token);
var access_token = $rootScope.access_token
localStorage.setItem("access_token", access_token);
localStorage.getItem("access_token");
console.log(access_token);
$rootScope.acc=access_token;
})
};
问题是var access_token无法在页面刷新时存储$ rootscope.access_token,但如果我使用
var access_token = 'jack'
I can use this value successfully even on page refresh inside other controllers.
我想要的是甚至在页面刷新时分配给access_token的$ rootScope值。 感谢任何帮助,谢谢
修改
我做了这样的改变 var access_token = $ scope.access_token
localStorage.data=access_token;
console.log(localStorage.data);
在这样的另一个控制器中使用这个localStorage
myApp.controller().....
{
$scope.access_token=localstorage.data;
}
我现在可以在控制器的任何地方使用$ scope.access_token和存储的值。
答案 0 :(得分:1)
页面重新加载你的应用程序将被初始化,所以你的$ rootscope中什么都没有。相反,您可以将访问令牌存储到session或localstorage等中。
答案 1 :(得分:1)
这应该有效。你能为你的代码提供一个plunkr。
还有一件事,你的access_token
是什么类型的?
我想,你知道,你需要在保存到localStorage之前对JSON对象进行字符串化,并在将其拉回时对其进行解析。
另外,我猜你应该使用sessionStorage,而不是localStorage。