我正在编写一个小的AngularJS应用程序,它有一个登录视图和一个主视图,配置如下:
$routeProvide
.when('/main' , {templateUrl: 'partials/main.html', controller: MainController})
.when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
.otherwise({redirectTo: '/login'});
我的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.";
}
}
一切正常,但如果我访问http://localhost/#/main我最终绕过登录屏幕。我想写一些东西,如“每当路由发生变化,如果$ rootScope.loggedUser为空,然后重定向到/登录”
...
我能以某种方式听取路线变化吗? 无论如何,我会发布这个问题,并继续寻找答案。
相似问题