Angular懶加載機(jī)制刷新后無法回退的快速解決方法
今天在項(xiàng)目中遇到一個(gè)很奇怪的問題,使用oclazyload懶加載angular的模塊,刷新頁面后,單擊回退按鈕無法返回上一個(gè)頁面.估計(jì)是使用懶加載機(jī)制銷毀了angular內(nèi)部的state關(guān)聯(lián),導(dǎo)致無法回到上一個(gè)state(單擊回退按鈕 ui-routre的 $stateChangeStart 事件都不會(huì)觸發(fā)),當(dāng)然這只是猜測,由于事件關(guān)系也沒有去深入的探究源碼.
angular懶加載機(jī)制刷新后無法回退的解決方案 :
通過查看angular(ionic)的源碼發(fā)現(xiàn)$browser這個(gè)服務(wù)上有個(gè)onUrlChange方法,當(dāng)我們從angular外部改變url地址時(shí),會(huì)調(diào)用此方法中注冊的事件處理函數(shù),如下圖所示:
這樣的話,就可以在程序入口注冊一個(gè)函數(shù)
//當(dāng)通過瀏覽器回退/前進(jìn)按鈕跳轉(zhuǎn)state時(shí),重新加載頁面,如果用系統(tǒng)state,則不會(huì)進(jìn)入此方法 $browser.onUrlChange(function (url) { //TODO 解析url中的state,使用懶加載去加載state模塊,實(shí)現(xiàn)頁面刷新 });
通過這個(gè)函數(shù)就可以在回退和前進(jìn)的時(shí)候重新去刷新頁面了...
以上所述是小編給大家介紹的Angular懶加載機(jī)制刷新后無法回退的快速解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Angular事件之不同組件間傳遞數(shù)據(jù)的方法
這篇文章主要介紹了Angular事件之不同組件間傳遞數(shù)據(jù)的方法,利用Angular Event在不同組件之間傳遞數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11angular 數(shù)據(jù)綁定之[]和{{}}的區(qū)別
這篇文章主要介紹了angular 數(shù)據(jù)綁定之[]和{{}}的區(qū)別,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09Angular.js自定義指令學(xué)習(xí)筆記實(shí)例
這篇文章主要介紹了Angular.js自定義指令的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02AngularJS實(shí)現(xiàn)的省市二級(jí)聯(lián)動(dòng)功能示例【可對(duì)選項(xiàng)實(shí)現(xiàn)增刪】
這篇文章主要介紹了AngularJS實(shí)現(xiàn)的省市二級(jí)聯(lián)動(dòng)功能,涉及事件監(jiān)聽、響應(yīng)及頁面元素動(dòng)態(tài)操作相關(guān)技巧,此外還具備對(duì)選項(xiàng)進(jìn)行增刪的功能,需要的朋友可以參考下2017-10-10Angular2.0/4.0 使用Echarts圖表的示例代碼
本篇文章主要介紹了Angular2.0/4.0 使用Echarts的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法
這篇文章主要介紹了Angularjs的ng-repeat中去除重復(fù)數(shù)據(jù)的方法,涉及AngularJS針對(duì)重復(fù)數(shù)據(jù)的遍歷與過濾技巧,需要的朋友可以參考下2016-08-08用Angular實(shí)現(xiàn)一個(gè)掃雷的游戲示例
這篇文章主要介紹了用Angular實(shí)現(xiàn)一個(gè)掃雷的游戲示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05