1. 程式人生 > >angularJS: $location 服務

angularJS: $location 服務

獲取 com aid asc 移除 earch search 修改 類型

記錄下今天的學習筆記:

$location服務:

  1. 解析地址欄的URL,讓用戶可以訪問應用當前路徑所對應的路由。
  2. 可修改路徑、處理各種形式導航。

$location服務對javascript中的window.location對象的API進行了更優雅的封裝,並且和angularJS集成在一起。

使用$location服務的最佳場景是:當應用需要在內部進行跳轉時候。如:用戶註冊、修改、或登錄後進行的跳轉。

$location服務並不刷新整個頁面。刷新整個頁面使用:$window.location對象(window.location的一個接口)

1. path() - 獲取頁面當前路徑:

$location.path(); //返回當前路徑

$location.path(‘/‘); //修改路徑為‘/‘路由,並跳轉

path()方法直接和H5的歷史API進行交互,所以用戶可通過點擊後退按鈕退回到上個頁面。

2. replace() - 禁止用戶跳轉後點擊後退按鈕。(如用戶登錄後)

$location.path(‘/home‘);

$location.replace();

或者:

$location.path(‘/home‘).replace();

3. absUrl() - 獲取編碼後的完整URL

$location.absUrl();

4. hash() - 獲取URL中的hash片段

$location.hash(); // 返回當前的hash片段

5. host() - 獲取URL中的主機

$location.host();

6. port() - 獲取URL中的端口號

$location.port();

7. protocol() - 獲取URL中的協議

$location.protocol();

8. search() - 獲取URL中的查詢串

$location.search();

這個方法可傳入新的查詢參數,用來修改URL中的查詢串部分:

//用對象設置查詢:

$location.search({name: ‘Ari‘, username: ‘auser‘});

//用字符串設置查詢:

$location.search(‘name=Air&username=auser‘);

search方法可接收兩個可選參數:

  • search(可選,字符串或對象) - 代表新的查詢參數。hash對象的值可以是數組
  • paramValue(可選,字符串) - 如果search參數的類型是字符串,那麽paramValue會作為該參數的值覆蓋URL當中對應的值。如果paramValue的值是null,對應的參數會被移除。

9. url() - 獲取當前的URL:

$location.url();

調用url()方法時如果傳了參數,會設置並修改當前的URL,同時修改URL中的路徑、查詢串和hash,並返回$location。

//設置新的URL

$location.url(‘/home?name=Ari#hashthing‘);

方法可接收兩個參數:

url(可選,字符串) - 新的URL的基礎的前綴。

replace(可選,字符串) - 想要修改成的路徑。

angularJS: $location 服務