首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将$rootScope值存储在本地存储中,并在页面刷新时在另一个控制器中使用它

将$rootScope值存储在本地存储中,并在页面刷新时在另一个控制器中使用它
EN

Stack Overflow用户
提问于 2016-07-31 13:42:27
回答 2查看 556关注 0票数 0

我有一个令牌生成器函数,我必须在每个http调用中传递令牌参数,所以即使在刷新时,我也需要完整地存储令牌值并使用它。这是我的代码-

代码语言:javascript
运行
复制
 $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,但是如果我使用

代码语言:javascript
运行
复制
var access_token = 'jack'
I can use this value successfully even on page refresh inside other controllers.

我想要的是即使在页面刷新时也要将$rootScope值分配给access_token。感谢您的帮助,谢谢

编辑

我做了这样的更改: var access_token = $scope.access_token

代码语言:javascript
运行
复制
                localStorage.data=access_token;
                console.log(localStorage.data);

并在另一个控制器中使用此localStorage,如下所示

代码语言:javascript
运行
复制
myApp.controller().....
{
    $scope.access_token=localstorage.data;

}

我现在可以在控制器中的任何地方使用这个带有存储值的$scope.access_token。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-31 14:00:35

在页面重新加载时,您的应用程序将被初始化,因此您的$rootscope中将没有任何内容。相反,您可以将访问令牌存储到或会话、本地存储等中。

票数 1
EN

Stack Overflow用户

发布于 2016-07-31 14:13:00

这应该是可行的。你能为你的代码提供一条路径吗?

还有一件事,你的access_token是什么类型的?我想,你知道,你需要在保存到localStorage之前把JSON对象串起来,然后在拉回它的时候解析它。

另外,我想,你应该使用sessionStorage,而不是localStorage。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38681119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档