Angularjs如何获取URL引用者?

时间:2015-01-28 07:02:17

标签: angularjs

在AngularJS中,我有一个登录控制器,如果用户到达页面并且未登录,则会被应用程序中的每个页面重定向到。登录序列后,我想将用户重定向回他们来自的页面。最好的方法是什么?

2 个答案:

答案 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()是否是正确的功能,但我认为你可以看到我的意思