2016-05-25 13 views
0

Я объявил $ rootScope. $ На функции под myApp.run проверить значение маркеров в каждой подлинности page.but его не working.I не понимает, почему он не работает. Пожалуйста, помогите мне.

app.js

myApp.run(['$rootScope','$state', '$location', 'loginService', function ($rootScope,$state, $location, loginService) { 

    console.log(" under run => "); 
    $rootScope.$on('routeChangeStart', function (event, next, current) { 
     /*If route is authenticated then check if the user has access token, else return to login screen*/ 

     console.log(event); 

     if (next.$$route.authenticated) { 

      var userAuth = loginService.getUserToken(); 
      console.log(" usertoken => " +userAuth); 
      if (!userAuth) { 
       $location.path("/"); 
      } 
     } 

    }); 
}]); 

код печать на консоли «недогрузки =>» но не печатает события объекта, а также не проверять, если состояние.

ответ

2

Будьте уход за $:

$rootScope.$on('$stateChangeStart',...) 
+0

Я думаю, что это близко, но только если это UI-маршрутизатор думает, что это должно быть $ routeChangeStart хотя для ngRoute – shaunhusain

+0

это работает TNX в сошедшем мой день ;-) –

+0

Я думаю, как один и тот же путь, проверьте [это] (HTTP: //stackoverflow.com/questions/14765719/how-to-watch-for-a-route-change-in-angularjs). –

0
angular.module('...')..config(['$routeProvider', function($routeProvider) {...}])..run(function($rootScope, $location) { 
// register listener to watch route changes 
$rootScope.$on("$routeChangeStart", function(event, next, current) { 
    if ($rootScope.loggedUser == null) { 
    // no logged user, we should be going to #login 
    if (next.templateUrl == "partials/login.html") { 
     // already going to #login, no redirect needed 
    } else { 
     // not going to #login, we should redirect now 
     $location.path("/login"); 
    } 
    }   
}); 

Единственное, что кажется странным, что я должен был проверить частичное имя (login.html), потому что «следующий» объект Route сделал не имеют URL-адреса или чего-то еще. Может быть, есть лучший способ?

Смежные вопросы