首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何根据情况重定向?

如何根据情况重定向?

提问于 2017-12-20 10:22:03
回答 2关注 0查看 289

我正在编写一个小的AngularJS应用程序,它有一个登录视图和一个主视图,配置如下:

代码语言:txt
复制
代码语言:txt
复制
$routeProvide
代码语言:txt
复制
 .when('/main' , {templateUrl: 'partials/main.html',  controller: MainController})
代码语言:txt
复制
 .when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
代码语言:txt
复制
 .otherwise({redirectTo: '/login'});

我的LoginController检查用户和传递组合,并在$ rootScope上设置一个属性来反映这一点:

代码语言:txt
复制
function LoginController($scope, $location, $rootScope) {
代码语言:txt
复制
 $scope.attemptLogin = function() {
代码语言:txt
复制
   if ( $scope.username == $scope.password ) { // test
代码语言:txt
复制
        $rootScope.loggedUser = $scope.username;
代码语言:txt
复制
        $location.path( "/main" );
代码语言:txt
复制
    } else {
代码语言:txt
复制
        $scope.loginError = "Invalid user/pass.";
代码语言:txt
复制
    }
代码语言:txt
复制
}

一切正常,但如果我访问http://localhost/#/main我最终绕过登录屏幕。我想写一些东西,如“每当路由发生变化,如果$ rootScope.loggedUser为空,然后重定向到/登录”

...

我能以某种方式听取路线变化吗? 无论如何,我会发布这个问题,并继续寻找答案。

相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档