2015-12-26 27 views
0

这似乎是当我从一个页面重定向到我的主页时,我的rootcope重置?

这里是登录后的重定向代码:

self.authUser = function() { 
       LoginService.authUser($scope.inputEmail, $scope.inputPassword, 'inf') 
         .then(function(d) { 
          $rootScope.authenticated = true; 
          $window.location.href = '/job'; 
         }, function(errResponse) { 
          $scope.errorLogin = true; 
          $rootScope.authenticated = false; 
         }); 
      }; 

下面是炫魅代码:

<script src="<c:url value="/resources/js/application.js"/>"></script> 
    <script src="<c:url value="/resources/js/service/main_service.js"/>"></script> 
    <script 
     src="<c:url value="/resources/js/controller/main_controller.js"/>"></script> 
<title>Insert title here</title> 
</head> 
<body ng-app='application'> 
<div class='container' ng-controller='MainController as ctrl'> 
    <span ng-show='authenticated'>lllllllllllllllloloooooo</span> 
    <button class="btn btn-lg btn-primary btn-block" ng-click='ctrl.authorize()'>Sign 
      in</button> 
      </div> 
</body> 

所以成功登录后,我设置rootScope为真,但是当它$ window.location.href它重新设置了true,并且它又是一个false。我是否需要通过加载后的回复或其他内容重新认证每个页面?

编辑:ngRoute

的application.js

'use strict'; 

var App = angular.module('application', [ 'ngRoute', 'ngCookies' ]).config(
     [ '$routeProvider', function($routeProvider) { 
      $routeProvider.when('/', { 
       templateUrl : '/job/', 
       controller : 'main_controller' 
      }).when('/login', { 
       templateUrl : '/job/login', 
       controller : 'login_controller' 
      }).otherwise({ 
       redirectTo : '/' 
      }); 
     } ]); 

试图 $ location.path( “/”); $ scope。$ apply();

and $ window.location.assign('/ job');

$timeout(function() { 
          $location.path("/"); 
         }); 

$位置不会改变&页面$窗口

+1

您使用的是基于html5还是基于散列的路由?你使用哪种路由系统?角路线? UI的路由器?您当前正在重新加载应用程序,它会重置状态。您需要正确使用路由以防止重新加载。 – datasage

+0

@datasage我正在使用ngRoute –

回答

0

我没有实际使用rootscope正确和nGroute实际上没有被正确地使用刷新我的rootscope。