今天在專(zhuān)案中遇到一個(gè)很奇怪的問(wèn)題,使用oclazyload懶加載angular的模組,刷新頁(yè)面後,單擊回退按鈕無(wú)法返回上一個(gè)頁(yè)面.估計(jì)是使用懶加載機(jī)制銷(xiāo)毀了angular內(nèi)部的state關(guān)聯(lián),導(dǎo)致無(wú)法回到上一個(gè)state(單擊回退按鈕ui-routre的$stateChangeStart 事件都不會(huì)觸發(fā)),當(dāng)然這只是猜測(cè),由於事件關(guān)係也沒(méi)有去深入的探究源碼.
angular懶加載機(jī)制刷新後無(wú)法回退的解決方案:
透過(guò)查看angular(ionic)的源碼發(fā)現(xiàn)$browser這個(gè)服務(wù)上有個(gè)onUrlChange方法,當(dāng)我們從angular外部改變url位址時(shí),會(huì)呼叫此方法中註冊(cè)的事件處理函數(shù),如下圖所示:
這樣的話,就可以在程式入口註冊(cè)一個(gè)函數(shù)
//當(dāng)通過(guò)瀏覽器回退/前進(jìn)按鈕跳轉(zhuǎn)state時(shí),重新加載頁(yè)面,如果用系統(tǒng)state,則不會(huì)進(jìn)入此方法 $browser.onUrlChange(function (url) { //TODO 解析url中的state,使用懶加載去加載state模塊,實(shí)現(xiàn)頁(yè)面刷新 });
透過(guò)這個(gè)函數(shù)就可以在回退和前進(jìn)的時(shí)候重新去刷新頁(yè)面了...
以上所述是小編給大家介紹的Angular懶加載機(jī)制刷新後無(wú)法回退的快速解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回覆大家的。在此也非常感謝大家對(duì)PHP中文網(wǎng)的支持!
更多Angular懶加載機(jī)制刷新後無(wú)法回退的快速解決方法相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門(mén)文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)