AngularJS | gérer le routage avant qu'ils ne se chargent

Je souhaite créer un simple contrôle d'authentification pour mes itinéraires en service externe.

J'définir les conditions d'accès sur la route de l'objet:

$routeProvider
    .when('/', {
        templateUrl: 'src/app/views/index.html',
        controller: 'indexCtrl',
        authenticated: true
    })
    .when('/login', {
        templateUrl: 'src/app/views/login.html',
        controller: 'loginCtrl',
        anonymous:  true
    })
    .otherwise({
        redirectTo: '/'
    })
;

Ensuite, je vérifie si j'ai la permission au sein de la $routeChangeStart événement.

$rootScope.$on('$routeChangeStart', function (event, next) {
    if(next.authenticated && !$myService.isLoggedin())
        $location.path("/login");
    else if(next.anonymous && $myService.isLoggedin())
        $location.path("/secured");
});

En fait, il fonctionne-
si l'utilisateur non authentifié il le déplacer vers la page de connexion, s'il est authentifié, mais la route est pour les utilisateurs anonymes seulement, il les déplacer vers une autre page, et etc..

MAIS cette redirection qui se passe vraiment après les contrôleurs et les modèles de charge!
Et il la cause de mon contrôleur pour faire quelques inutiles demande à mon API REST, même si je ne suis pas authentifié.

Comment puis-je gérer la route avant qu'ils procédé?

source d'informationauteur Almog Baku