Ich habe zwei Controller auf der gleichen Seite, einen für Login-Controller und den anderen Controller. Der erste Controller ist an den Pfad "/" und der zweite an den Pfad "/ mypath" gebunden. Wenn der Benutzer nicht angemeldet ist, kann er nicht auf diesen zugreifen. Er kann sich über den ersten Controller einloggen.
Das Problem besteht darin, dass die Seite bei der Anmeldung des Benutzers zum Pfad "/" weitergeleitet wird. Wie kann man das verhindern? Ich möchte, dass die Seite auf dem aktuellen Pfad bleibt. Das habe ich ausprobiert. Die $locationChangeStart
Veranstaltung:Angular JS Redirect nach dem Login
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);
});
}]);
Dann im Login-Controller:
$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);
});
};
Die $rootScope.returnUrl
verweist auf den "/" Pfad.
was hast du bisher versucht? –
Ich habe '$ locationChangeStart' versucht, die aktuelle URL zu erfassen und das' $ rootScope' an den Login-Controller zu übergeben. Dann, nach erfolgreichem Login, habe ich dann '$ location.path (previousURL)' zum zweiten Controller. Aber es funktioniert nicht wie erwartet. –
können Sie es jsfiidle es? –