【发布时间】:2017-03-23 02:03:37
【问题描述】:
在 AngularJS 中,我有一个登录控制器,如果用户到达该页面但未登录,应用程序中的每个页面都会重定向到该控制器。在登录序列之后,我想将用户重定向回他们来自的页面。最好的方法是什么?
【问题讨论】:
标签: angularjs
在 AngularJS 中,我有一个登录控制器,如果用户到达该页面但未登录,应用程序中的每个页面都会重定向到该控制器。在登录序列之后,我想将用户重定向回他们来自的页面。最好的方法是什么?
【问题讨论】:
标签: angularjs
您可以使用 history.back() 让用户导航到他之前所在的页面。这在任何情况下都有效,除非用户直接导航到登录页面:)
另一种解决方案是在您从另一个页面导航时将搜索参数传递给登录页面。然后,您可以从登录页面选择导航到搜索参数的页面(如果存在),否则导航到“主页”。
【讨论】:
也许你可以捕捉到路由的变化,当目标是你的登录页面时,它可以保存旧的路由。登录后,您可以重定向到旧路线
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() 是否是正确的函数,但我想你可以明白我的意思
【讨论】: