在AngularJS中,我有一个登录控制器,如果用户到达页面并且未登录,则会被应用程序中的每个页面重定向到。登录序列后,我想将用户重定向回他们来自的页面。最好的方法是什么?
答案 0 :(得分:1)
您可以使用history.back()让用户导航到之前的页面。这适用于所有情况,除非用户直接导航到登录页面:)
另一种解决方案是从另一个页面导航时将搜索参数传递到登录页面。然后,您可以从登录页面选择导航到搜索参数的页面(如果存在),否则导航到“主页”。
答案 1 :(得分:0)
也许您可以捕获路线更改,当目标是您的登录页面时,它可以保存旧路线。登录后,您可以重定向到旧路径
angular.module('appName')
.run(['$rootScope','$location', '$routeParams', function($rootScope, $location, $routeParams) {
$rootScope.$on('$routeChangeSuccess', function(e, next, cur) {
if (next.path() == 'your/login/path') {
$rootScope.savedRoute = $location.path());
$rootScope.savedParams = $routeParams;
}
}
}]);
我不确定path()是否是正确的功能,但我认为你可以看到我的意思