我在同一页面上有两个控制器,一个用于登录控制器,另一个用于控制器。第一个控制器绑定到路径“/”,第二个控制器绑定到路径“/ 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
指向“/”路径。
答案 0 :(得分:0)
找到答案。这是因为登录按钮实际上是<a>
href="#"
。这就是页面被重定向到根路径的原因。删除href
解决了我的问题。