您好,登錄后才能下訂單哦!
小編給大家分享一下AngularJs如何實現返回前一頁面時刷新一次前面頁面,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
要求:
頁面A進入到頁面B,在頁面B處理完后返回頁面A,頁面A里的數據應該動態的減去一條,但由于一般情況下頁面是緩存起來的,返回A后讀取的是緩存靜態頁面,里面顯示的數據不會減少。應客戶要求,需要重新加載一次數據,達到頁面A可以刷新數據目的。
研究過程:
從網上尋找發現,有一個方法可以獲取到當前頁面的URL:$location
以 ‘http://localhost/$location/21.1%20$location.html#/foo?name=bunny#myhash' 這個路徑為例:
1. 獲取當前完整的url路徑:
$location.absUrl(): // http://localhost/$location/21.1%20$location.html#/foo?name=bunny#myhash
2. 獲取當前url路徑(當前url#后面的內容,包括參數和哈希值):
$location.url(); // /foo?name=bunny#myhash
3. 獲取當前url的子路徑(也就是當前url#后面的內容,不包括參數):
$location.path() // /foo
4. 獲取當前url的協議(比如http,https)$location.protocol()
$location.protocol() // http
5. 獲取當前url的主機名
$location.host() // localhost
6. 獲取當前url的端口
$location.port() // 80 (這里就是wamp的默認端口號)
獲取到當前頁的URL后,把它賦給全局變量,當URL變化時,刷新前一頁面即可
parent.location.reload(); //該方法可用于刷新前面所以頁面
之后繼續在網上找有沒有更好的辦法,發現了一個可以直接使用的方法:
這兩個事件分別發生在當url開始發生改變,以及url改變完成.他們都被綁定在$rootScope里面:
$rootScope.$on('$locationChangeStart',function(){ console.log('開始改變$location') }); $rootScope.$on('$locationChangeSuccess',function(){ console.log('結束改變$location') });
之后寫進代碼里做了驗證,驗證結果可用。寫法為:
$rootScope.$on('$locationChangeSuccess',function(){//返回前頁時,刷新前頁 parent.location.reload(); });
以上是“AngularJs如何實現返回前一頁面時刷新一次前面頁面”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。