1
我在同一頁面上有兩個控制器,一個用於登錄控制器和另一個控制器。第一個控制器綁定到路徑「/」,第二個綁定到路徑「/ mypath」。 如果用戶未登錄,則他無法訪問後者。他可以通過第一個控制器登錄。
問題是,當用戶登錄時,頁面將路由到路徑「/」。如何防止這一點?我希望頁面保持當前路徑。 這是我試過的。所述$locationChangeStart
事件:登錄後的角JS重定向
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
指向 「/」 路徑。
到目前爲止您嘗試過什麼? –
我嘗試了'$ locationChangeStart'事件來捕獲當前URL並將'$ rootScope'傳入登錄控制器。然後,在登錄成功之後,我將'$ location.path(previousURL)'傳遞給第二個控制器。但是,它沒有按預期工作。 –
你可以jsfiidle嗎? –