8
在AngularJS中,我有一個登錄控制器,如果用戶到達頁面並且沒有登錄,那麼應用程序中的每個頁面都會重定向到該登錄控制器。在登錄序列後,我想重定向用戶回到他們來自的頁面。什麼是最好的方法來做到這一點?將舊位置保存在$rootScope
?重定向到'/login?returnto=' + $location.path()
?是否有內置函數?重定向到引用者
在AngularJS中,我有一個登錄控制器,如果用戶到達頁面並且沒有登錄,那麼應用程序中的每個頁面都會重定向到該登錄控制器。在登錄序列後,我想重定向用戶回到他們來自的頁面。什麼是最好的方法來做到這一點?將舊位置保存在$rootScope
?重定向到'/login?returnto=' + $location.path()
?是否有內置函數?重定向到引用者
您可以使用$rootScope
或定義一個服務來保存舊的位置。這是一個SO post,對比兩種方法。我個人不喜歡在網址中添加returnto=
。
此博客文章,Authentication in AngularJS,可能是你感興趣的。請注意Vojta(AngularJS作者之一)在該博客上發表的關於使用$rootScope
的評論 - 他建議使用服務。
如果登錄頁面不是由角度 – JustGoscha
@JustGoscha處理的頁面,那麼使用cookie或服務器端會話對象來存儲原始頁面。成功登錄後,檢查cookie的存在或從會話中提取頁面並將其發送到瀏覽器(例如,作爲一些JavaScript或隱藏的表單元素)。 –