2014-03-04 67 views
2

我可以知道如何將用戶重定向到登錄後原來的位置?說我有一個帖子wwww.example.com/post/435,它需要用戶登錄,以「喜歡/評論」的帖子,所以在用戶登錄後,我如何將用戶重定向到帖子?我曾經嘗試這樣做登錄後的angularjs重定向

$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

未必是最好的答案,但我用這一個cookie - 所以每當我重定向到一個新的位置,我會用$cookies.loginDestination = $location.path(),那麼只要用戶登錄,我使用類似:

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

它完美的作品!大聲笑非常感謝你:D –

+0

文中的第一行代碼行說''cookie''而不是''cookies'' –

+0

@BettySt更新! – Jesse