登录后Angular JS重定向

时间:2016-06-10 04:14:46

标签: angularjs url-redirection

我在同一页面上有两个控制器,一个用于登录控制器,另一个用于控制器。第一个控制器绑定到路径“/”,第二个控制器绑定到路径“/ mypath”。 如果用户未登录,则他无法访问后者。他可以通过第一个控制器登录。
问题是,当用户登录时,页面将路由到路径“/”。怎么预防这个?我希望页面保持当前路径。 这就是我尝试过的。 $locationChangeStart事件:

mstdapp.run(["$rootScope", function($rootScope){
    $rootScope.$on("$locationChangeStart", function(event, newUrl, oldUrl){
        $rootScope.returnUrl = newUrl;
        console.log("new url in run is :");
        console.log(newUrl);        
    });
 }]);

然后,在登录控制器中:

$scope.login = function(){          
            authService.Authenticate($scope.user)
            .then(function(res){                
                $scope.user.displayname = res.data.name;
                $scope.isLoggedIn = authService.isAuthenticated();              
                console.log($rootScope.returnUrl);
            }, function(res){
                alert(res.data.error_description);
                console.log($rootScope.returnUrl);
            });           

};

$rootScope.returnUrl指向“/”路径。

1 个答案:

答案 0 :(得分:0)

找到答案。这是因为登录按钮实际上是<a> href="#"。这就是页面被重定向到根路径的原因。删除href解决了我的问题。