Я пишу небольшое приложение AngularJS, которое имеет вид входа в систему и основной вид, настроенный так:
$routeProvider
.when('/main' , {templateUrl: 'partials/main.html', controller: MainController})
.when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
.otherwise({redirectTo: '/login'});
My LoginController проверяет комбинацию user/pass и устанавливает свойство на $rootScope, отражающее это:
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.";
}
}
Все работает, но если я получаю доступ к http://localhost/#/main
, я вхожу в обход экрана входа. Я хотел написать что-то вроде "всякий раз, когда изменяется маршрут, если $rootScope.loggedUser имеет значение null, а затем перенаправляется на /login "
...
... подождите. Могу ли я слушать изменения маршрута? Я все равно отправлю этот вопрос и буду продолжать искать.