我直接从浏览器更改URL时,rootcope重置

时间:2015-11-05 07:25:22

标签: angularjs angular-ui-router angularjs-rootscope

我正在使用ui-router并声明。当用户在rootscope中登录时,我添加一个名为profile的变量并按下登录的详细信息。当我从UI更改状态,即单击链接rootscope.profile保持打开,但如果我直接更改url rootscope.profile说undefined?可能是什么原因。

这是我的州

 $stateProvider
    .state('root', {
      abstract : true,
      views : {
          '' : {templateUrl : "views/home/root.html"},
          'topbar@root' : {
              templateUrl: "views/menu/topbar.html",
              controller: "TopBarCtrl"                
          },
          'menu@root' : {
              templateUrl: "views/menu/nav.html",
              controller: "NavCtrl"                
          },
          'footer@root' : {
              templateUrl: "views/footer/footer.html",
              controller: "FooterCtrl"                
          } 
      }      
    })
    .state('mypage', {
      parent : 'root',
      url: "/mypage",
      templateUrl: "views/mypage/mypage.html",
      controller: "mypageCtrl",
      data : {
          authorizedRoles : [mypage_ROLES.PUBLIC]
      }

    }).config(function($locationProvider){
    $locationProvider.html5Mode(true).hashPrefix('!');
});

这是我的nginx服务器设置

 server {
        listen 8000;
        root C:/xampp/htdocs/myapp/myapp/app;
        index index.html index.htm;
        server_name localhost;
        location / {
           try_files $uri /index.html;

        }
        }

在我的index.html中我喜欢

<base href="/">

1 个答案:

答案 0 :(得分:2)

这是单页面应用程序。当您直接更改网址时,它意味着您打开一个新的应用程序,因此未定义rootscope.profile。