2016-11-17 96 views
0

在我的應用程序中,我需要檢查用戶的詳細信息,如果用戶沒有登錄,那麼我需要重定向回/login頁面。但我的嘗試不工作,我應該在哪裏做這個配置?

我嘗試:

(function(){ 

    "use strict"; 

    angular.module('meanOffice') 
     .config(routeConfig) 
     .run(stateController); 


    function routeConfig($locationProvider, $stateProvider, $urlRouterProvider){ 

     $stateProvider 
      .state('login', { 
       url:'/', 
       templateUrl : 'app/views/pages/login/login.html', 
       controller : 'mainController as main' 
      }) 
      .state('users', { 
       url:'/users', 
       templateUrl : 'app/views/pages/users/users.html', 
       controller : 'usersController as users', 
       required : true, 
       resolve  : { 
        usersData : function(){ 

         return "Arif"; 
        } 
       } 
      }) 


     $urlRouterProvider.otherwise('/'); 

    } 


    function stateController($rootScope, auth, authToken){ 

     $rootScope.$on('$routeChangeStart', function(){ 

      var isLoggedIn = auth.isLoggedIn(); 
//but each time the route change, this is not called..!? 
      if(!isLoggedIn) 
       $location.path('/'); 

     }); 


    } 

})(); 
+0

得到任何錯誤?又該auth.isLoggedIn()返回? –

+0

它根據值返回true或false。但即使我沒有觸發'routeChageStart'在所有,每次 – user2024080

+0

好嗎你確定狀態控制器函數沒有調用?如果你確實嘗試使這個運行方法的方法在接受的答案中提到http:///stackoverflow.com/questions/20969835/angularjs-login-and-authentication-in-each-route-and-controller –

回答

0

這是我的錯,如果我使用$stateChageStart - 它工作正常。

這裏是我的更新

$rootScope.$on("$stateChangeStart", function(){ 

    console.log('each time starts') 

}) 
相關問題