Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改路由时,rootScope未被定义_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript 更改路由时,rootScope未被定义

Javascript 更改路由时,rootScope未被定义,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,所以,当我的用户登录时,我有这个代码 var promise = UserFactory.doLogin(userCredentials); promise.success(function (data, status) { //set some localstorage vars //only on login's success get additional data var anotherPromise = UserDataFactory.getUserData();

所以,当我的用户登录时,我有这个代码

var promise = UserFactory.doLogin(userCredentials);

promise.success(function (data, status) { 

  //set some localstorage vars
  //only on login's success get additional data

   var anotherPromise = UserDataFactory.getUserData();                                   
    anotherPromise.success(function (data, status){                                      
           if(data.code == 2){                                                     
               $rootScope.userHead = true;
             }

});
$rootScope.userHead=true将根据其值(真/假)显示/隐藏子菜单。子菜单的HTML是

包含菜单的页面包含在带有
的某些页面中。这些页面是按这样的路线排列的

            .when('/user', {                    
               templateUrl: 'user.html',                         
               controller: 'userController',
               animation: 'second',
               access: {
                    requiredLogin: true
                }
            }) 
           //user.html includes menu with ng-include="'submenu.html'"
当我转到用户页面时,
$rootScope.userHead
有一个值,子菜单按原样隐藏。如果我点击刷新,
$rootScope.userHead
未定义的
,我可以看到子菜单

我看不到对
$rootScope.userHead的任何覆盖。当我转到另一页时,它是否会失去它的值?它不应该保持它的价值吗

我错过了什么?我该如何解决这个问题


感谢如果您重新加载页面,则JavaScript变量中存储的所有信息都将丢失
$rootScope
不过是JavaScript中的一个变量。如果要存储持久性页面重新加载的内容,至少有以下几种可能性:

  • 使用Cookie(在angular中,您可以使用$cookieStore)
  • 使用一些新的HTML5功能,如区域设置存储、Web DB或旧的DOM存储()
  • 将数据存储在服务器上
  • 天然气储存

作者:Micheal

刷新时,应用程序将从零重新启动。所有服务和变量实例都被重新定义。您无法刷新角度应用程序并保留非持久变量。@Italoayers谢谢。那么,你有什么建议?我应该将
userHead
保存到其他地方吗?例如,把它放在本地存储器中,而不是角形存储器中?也许吧。但是,如果在启动应用程序时,您使用LoginService查看用户是否已登录,或者类似的情况,您可以在该服务中设置此配置。如果您理解我的意思。根范围在重置时重置,cookie或本地存储或会话存储或Windows本地存储可能会导致此问题。