Je suis en train d'écrire une petite application AngularJS qui a un login et d'un affichage principal, configurée comme suit:
$routeProvider
.when('/main' , {templateUrl: 'partials/main.html', controller: MainController})
.when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
.otherwise({redirectTo: '/login'});
Mon LoginController vérifie le user/pass combinaison et définit une propriété sur l' $rootScope reflétant ce:
function LoginController($scope, $location, $rootScope) {
$scope.attemptLogin = function() {
if ( $scope.username == $scope.password ) { // test
$rootScope.loggedUser = $scope.username;
$location.path( "/main" );
} else {
$scope.loginError = "Invalid user/pass.";
}
}
Tout fonctionne, mais si je accéder http://localhost/#/main
- je contourner l'écran de connexion. Je voulais écrire quelque chose comme "à chaque fois que les modifications d'itinéraire, si $rootScope.loggedUser est null alors rediriger vers /login"
...
... d'attente. Puis-je écouter de changements de route en quelque sorte? Je vais poster cette question de toute façon et continuer à chercher.