AngularJS通過(guò)$location獲取及改變當(dāng)前頁(yè)面的URL

本篇將介紹AngularJS中的$location服務(wù)的基本用法,$location服務(wù)的主要作用是用于獲取當(dāng)前url以及改變當(dāng)前的url,并且存入歷史記錄。本文通過(guò)示例代碼介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。 原文鏈接

注意
本文中獲取與修改的URL以 http://172.16.0.88:8100/#/homePage?id=10&a=100 這個(gè)路徑為例:

一. 獲取url的相關(guān)方法(不修改URL):

  1. 獲取當(dāng)前完整的url路徑
var absurl = $location.absUrl(); 
//結(jié)果:http://172.16.0.88:8100/#/homePage?id=10&a=100
  1. 獲取當(dāng)前url路徑(當(dāng)前url#后面的內(nèi)容,包括參數(shù)和哈希值):
var url = $location.url(); 
// 結(jié)果:/homePage?id=10&a=100
  1. 獲取當(dāng)前url的子路徑(也就是當(dāng)前url#后面的內(nèi)容,不包括參數(shù))
var pathUrl = $location.path() 
//結(jié)果:/homePage
  1. 獲取當(dāng)前url的協(xié)議(比如http,https) \
var protocol = $location.protocol(); 
//結(jié)果:http
  1. 獲取主機(jī)名
var localhost = $location.host(); 
//結(jié)果:172.16.0.88
  1. 獲取當(dāng)前url的端口
var port = $location.port(); 
//結(jié)果:8100
  1. 獲取當(dāng)前url的哈希值
var hash = $location.hash() 
//結(jié)果:http://172.16.088
  1. 獲取當(dāng)前url的參數(shù)的序列化json對(duì)象
var search = $location.search(); 
//結(jié)果:{id: "10", a: "100"}

二. 修改url的相關(guān)方法(改變URL相關(guān)內(nèi)容):

  1. 修改url的子路徑部分(也就是當(dāng)前url#后面的內(nèi)容,不包括參數(shù)):
$location.url('/validation'); 
//結(jié)果:http://172.16.0.88:8100/#/validation
  1. 修改url的哈希值部分
$location.hash('myhash3'); 
//結(jié)果:http://172.16.0.88:8100/#/homePage?id=10&a=100#myhash3
  1. 修改url的參數(shù)部分(第一個(gè)參數(shù)表示url參數(shù)的屬性名,第二個(gè)參數(shù)是該屬性名的屬性值,如果是已有屬性名,則修改,如果不是已有屬性,則新增)
$location.search('id','111') 
// 結(jié)果(修改參數(shù)值):http://172.16.0.88:8100/#/homePage?id=111&a=100 
$location.search('ids','111') 
// 結(jié)果(新增ids參數(shù)): http://172.16.0.88:8100/#/homePage?id=111&a=100&ids=111
  1. 一次性修改多個(gè)參數(shù)
$location.search({id:'55','a':'66'}) 
//結(jié)果:http://172.16.0.88:8100/#/homePage?id=55&a=66#myhash3
  1. 第一個(gè)值表示url參數(shù)的屬性名,如果是已有屬性名,則刪除該屬性,如果不是已有屬性,那就等于沒(méi)改過(guò)
$location.search('age',null)

三、修改URL但不存入歷史記錄

在上面的修改url的方法的時(shí)候,每修改一次,url都會(huì)被存入歷史記錄,可以使用后退按鈕回到修改前的url,如果不想要這種效果,而僅僅是替換當(dāng)前的記錄,可以使用 $location.path('/validation').replace();

總結(jié)
以上就是關(guān)于AngularJS通過(guò)$location獲取及改變當(dāng)前頁(yè)面URL的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助。如果有疑問(wèn)大家可以留言交流。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,914評(píng)論 18 139
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說(shuō)閱讀 11,141評(píng)論 6 13
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666閱讀 1,435評(píng)論 0 6
  • 詞組 1. Dad was ALREADY mad at me for tearing up the sod, s...
    UUfighting閱讀 735評(píng)論 0 0
  • 昨日爸爸過(guò)生日家里聚餐,一位叔叔提出如果你的爸爸是省長(zhǎng),我想做什么。我沉默了一會(huì)兒,我說(shuō)我想做我想做的事。此時(shí)...
    尹口0閱讀 545評(píng)論 0 1