簡體   English   中英

AngularJS $定位服務和“返回”按鈕

[英]AngularJS $location service and “Back” button

例如,當前URL是“ http:// localhost /#/ mail ”。 我做了一些動作,我想轉到下一個網址:

$location.path("mail/inbox/3")

效果很好。 我在另一個具有另一個URL的控制器中。 但是,當我單擊“后退”瀏覽器按鈕時,希望返回到“郵件”路由,但我改為使用“郵件/收件箱”路由。 為什么? 我該如何解決? 因為對我來說這是不正確的。 謝謝。

當您解雇這個孩子時:

$location.path("mail/inbox/3")

請記住 ,它遍歷了when('mail')when('mail/inbox')到達when('/mail/inbox/:number') 路由從mail -> inbox -> #3出發。 這就是為什么當您回擊時它將轉到mail/inbox

這是一個混亂的情況。 ng-routerui-router在簡單的情況下會很好,但是隨着應用程序的增長,像您這樣的錯誤是不可避免的。

在我的項目中,我使用$locationProvider.html5Mode(false);禁用了html5Mode $locationProvider.html5Mode(false); ,實際上是禁用后退按鈕。 並在應用程序內添加自定義后退按鈕,以供用戶向后導航。

該解決方案有助於:

  • 用戶根本無法使用后退按鈕,因此無法達到不想要的狀態
  • 自定義后退按鈕可以配置或隱藏。 事件代碼根據當前應用程序狀態在同一視圖上執行不同的操作。
  • 對用戶隱藏應用程序內部URL,以避免該應用程序被利用以獲取用戶不應看到的數據。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM