登录后的angularjs重定向

时间:2014-03-04 02:37:13

标签: javascript angularjs

我可以知道如何在登录后将用户重定向到原来的位置吗?说我有一个帖子wwww.example.com/post/435,它要求用户登录才能“喜欢/评论”这个帖子,所以在用户登录后如何将用户重定向回帖子?我试过这个

 $http.post('/sessionHandler/login',$scope.form).
      success(function(data){
        history.back(); // bring user back to previous path
      }).error(function(err){
        $scope.errorMessage = err;
      });
但是,如果用户以前的路径是其他站点或浏览器新选​​项卡,则它不会真正有效,它会将用户重定向回原来的位置。

我也发现了一些使用$locationChangeStart的例子,但是我很难理解它是如何工作的这就是我到目前为止$locationChangeStart

$http.post('/sessionHandler/login',$scope.form).
      success(function(data){
   $rootScope.$on("$locationChangeStart", function (event, next, current) {
      $location.path();// how to access to previous url where the user from ?
                       // how to use event, next and current to get the user last
                      // path on my site, and how to determine the last site is
                      // on my site but not other website ?  
    });

      })

感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

可能不是最佳答案,但我为此使用了一个cookie - 所以每当我重定向到新位置时,我都会使用$cookies.loginDestination = $location.path(),然后每当用户登录时,我会使用类似的东西:

var loginDestination = $cookies.loginDestination || '/';
$cookies.loginDestination = null;
$location.path(loginDestination);