angular.js - 單頁應(yīng)用(ng/vue)該如何監(jiān)聽用戶離開當(dāng)前頁面(或者路由)?
問題描述
場景描述:在ng的某個路由中,需要在用戶離開當(dāng)前路由時提示用戶是否確認(rèn)離開
我的疑惑:如果是普通的應(yīng)用,我們可以使用js來判斷用戶是否要離開,但是在單頁應(yīng)用中,所有的跳轉(zhuǎn)離開其實都是在一個頁面中,我想判斷用戶是否離開當(dāng)前路由,但是沒找到ng提供的公戶離開路由的方法
求各位前輩的思路~
問題解答
回答1:我只知道Vue可以
route: { deactivate() {... }}回答2:
ui-router里面有一個事件可以監(jiān)控狀態(tài)的改變,回調(diào)函數(shù)中參數(shù)可以記錄當(dāng)前頁面$rootScope.$on(’$stateChangeStart’, function (event, toState, fromState){});
回答3:ng中如果使用ui-router來作為路由系統(tǒng)。可以使用ui-router的事件系統(tǒng)來對路由狀態(tài)的變化做出相應(yīng)的業(yè)務(wù)邏輯。
$rootScope.$on(’$stateChangeStart’,function(event, toState, toParams, fromState, fromParams){ event.preventDefault(); // transitionTo() promise will be rejected with // a ’transition prevented’ error})
詳情可以參考ui-router中的$state
回答4:js原生通過hashchange事件,來監(jiān)聽頁面hash是否變化,在單頁面應(yīng)用中,很多的框架都會封裝這個方法成鉤子函數(shù)。
相關(guān)文章:
1. 如何設(shè)置一個無限循環(huán)并打破它。(Java線程)2. python小白 自學(xué)看書遇到看不懂的地方3. javascript - immutable配合react提升性能?4. javascript - 在vue項目中遇到的問題:DOMException5. 網(wǎng)頁爬蟲 - 如何使用使用java抓取信息并制作一個排名系統(tǒng)?6. php對mysql提取數(shù)據(jù)那種速度更快7. shell - mysql更新錯誤8. javascript - ionic1的插件如何遷移到ionic2的項目中9. python - 在github上看到一個基于卷積神經(jīng)網(wǎng)絡(luò)提高圖片分辨率的小項目waifu2x??10. ubuntu如何啟動sublime

網(wǎng)公網(wǎng)安備