Javascript 在本地存储中存储$rootScope值并在页面刷新时在另一个控制器中使用它
我有一个令牌生成器功能, 我必须在每个http调用中传递令牌参数,所以即使在刷新时,我也需要完整地存储令牌值并使用它。 这是我的密码-Javascript 在本地存储中存储$rootScope值并在页面刷新时在另一个控制器中使用它,javascript,angularjs,Javascript,Angularjs,我有一个令牌生成器功能, 我必须在每个http调用中传递令牌参数,所以即使在刷新时,我也需要完整地存储令牌值并使用它。 这是我的密码- $scope.accessTokenFunction=function() { data={ } $http.post('API_url',data, config) .success(function(data, status) { $scope.PostDataRespo
$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\u令牌无法在页面刷新时存储$rootscope.access\u令牌,但如果使用
var access_token = 'jack'
I can use this value successfully even on page refresh inside other controllers.
我想要的是$rootScope值被分配给access_令牌,即使在页面刷新时也是如此。
谢谢你的帮助
编辑
我做了这样的改变
var access\u token=$scope.access\u token
localStorage.data=access_token;
console.log(localStorage.data);
并在另一个控制器中使用此本地存储
myApp.controller().....
{
$scope.access_token=localstorage.data;
}
我现在可以在控制器中的任何位置使用这个$scope.access_令牌和存储值。在“重新加载”页面上,您的应用程序将被初始化,所以您的$rootscope中将没有任何内容。相反,您可以将访问令牌存储到或会话、本地存储等中。在页面重新加载时,您的应用程序将被初始化,因此您的$rootscope中将没有任何内容。相反,您可以将访问令牌存储到或会话、本地存储等中。这应该可以工作。你能为你的代码提供一个plunkr吗 还有一件事,您的
访问\u令牌是什么类型的?
我想,你知道,在保存到localStorage之前需要对JSON对象进行字符串化,并在将其拉回来时对其进行解析
另外,我想,您应该使用会话存储,而不是本地存储。这应该可以。你能为你的代码提供一个plunkr吗
还有一件事,您的访问\u令牌是什么类型的?
我想,你知道,在保存到localStorage之前需要对JSON对象进行字符串化,并在将其拉回来时对其进行解析
另外,我想,您应该使用sessionStorage,而不是localStorage。更好的做法是放弃传递值的$rootScope
,而使用$localStorage
而不是onlybetter放弃传递值的$rootScope
,使用$localStorage
而不是仅在localStorage中存储$rootScope?我成功地存储了字符串“jack”,但无法将$rootScope存储在localstorage.localstorage.setItem('rootScope',JSON.stringify($rootScope));我们需要将对象字符串化。但是我们必须确保每次更新rootscope时都必须更新localstorages,但是当我刷新页面时,$rootscope值仍然是未定义的。代码运行良好,直到我不刷新页面。您是从localstorage还是$rootScope读取值?如果是rootScope,它将是未定义的。您必须从localStorage嘿,谢谢,我在控制器localStorage中定义了$scope.access\u token=localStorage.data…然后我就可以使用它了。如何在localStorage中存储$rootscope?我成功地存储了字符串“jack”,但无法将$rootScope存储在localstorage.localstorage.setItem('rootScope',JSON.stringify($rootScope));我们需要将对象字符串化。但是我们必须确保每次更新rootscope时都必须更新localstorages,但是当我刷新页面时,$rootscope值仍然是未定义的。代码运行良好,直到我不刷新页面。您是从localstorage还是$rootScope读取值?如果是rootScope,它将是未定义的。您必须从localStorage嘿,谢谢,我在控制器localStorage中定义了$scope.access\u token=localStorage.data…这样我就可以使用它了。