『AngularJS』$location 服務


參考:

簡介

$location服務解析在瀏覽器地址欄中的URL(基於window.location)並且讓URL在你的應用中可用。改變在地址欄中的URL會作用到$location服務,同樣的,改變$location服務也會改變瀏覽器的地址欄。(可以使用$location進行重定向等操作)

$location服務:

暴露瀏覽器地址欄中的URL,讓你可以:

  • 監察URL。
  • 改變URL。

與瀏覽器同步URL,當:

  • 改變地址欄。
  • 單擊『前進』『后退』或一個歷史記錄中的鏈接。
  • 打開一個鏈接。
  • 將URL對象表示為一個方法集。 (protocol, host, port, path, search, hash)

服務依賴:

  • $browser
  • $sniffer
  • $rootElement

內置方法:

  • absUrl( ):只讀;根據在RFC 3986中指定的規則,返回url,帶有所有的片段。
  • hash( ):讀、寫;當帶有參數時,返回哈希碎片;當在帶有參數的情況下,改變哈希碎片時,返回$location。
  • host( ):只讀;返回url中的主機路徑。
  • path( ):讀、寫;當沒有任何參數時,返回當前url的路徑;當帶有參數時,改變路徑,並返回$location。(返回的路徑永遠會帶有/)
  • port( ):只讀;返回當前路徑的端口號。
  • protocol( ):只讀;返回當前url的協議。
  • replace( ):如果被調用,就會用改變后的URL直接替換瀏覽器中的歷史記錄,而不是在歷史記錄中新建一條信息,這樣可以阻止『后退』。
  • search( ):讀、寫;當不帶參數調用的時候,以對象形式返回當前url的搜索部分。
  • url( ):讀、寫;當不帶參數時,返回url;當帶有參數時,返回$location。

內置事件:

  • $locationChangeStart:在URL改變前發生。這種改變可以通過調用事件的preventDefault方法為阻止。查看ng.$rootScope.Scope#$on獲得更多的細節。成功時觸發$locationChangeSuccess事件。
  • $locationChangeSuccess:當URL改變后發生。

使用

何時使用$location

任何你想要改變當前URL的時候,都可以使用$location。

$location不會做

當瀏覽器的URL改變時,不會重新加載整個頁面。如果想要重新加載整個頁面,需要使用$window.location.href。

樣例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM