我正在编写一个小型AngularJS应用程序,它具有登录视图和主视图,配置如下:
$routeProvider
.when('/main' , {templateUrl: 'partials/main.html', controller: MainController})
.when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
.otherwise({redirectTo: '/login'});
Run Code Online (Sandbox Code Playgroud)
我的LoginController检查用户/传递组合并在$ 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.";
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但如果我访问http://localhost/#/main我最终绕过登录屏幕.我想写一些类似"每当路由改变时,如果$ rootScope.loggedUser为null然后重定向到/ login"
...
......等一下 我能以某种方式听路线变化吗?无论如何我会发布这个问题并继续寻找.