angular.js - 單頁應用(ng/vue)該如何監聽用戶離開當前頁面(或者路由)?
問題描述
場景描述:在ng的某個路由中,需要在用戶離開當前路由時提示用戶是否確認離開
我的疑惑:如果是普通的應用,我們可以使用js來判斷用戶是否要離開,但是在單頁應用中,所有的跳轉離開其實都是在一個頁面中,我想判斷用戶是否離開當前路由,但是沒找到ng提供的公戶離開路由的方法
求各位前輩的思路~
問題解答
回答1:我只知道Vue可以
route: { deactivate() {... }}回答2:
ui-router里面有一個事件可以監控狀態的改變,回調函數中參數可以記錄當前頁面$rootScope.$on(’$stateChangeStart’, function (event, toState, fromState){});
回答3:ng中如果使用ui-router來作為路由系統。可以使用ui-router的事件系統來對路由狀態的變化做出相應的業務邏輯。
$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事件,來監聽頁面hash是否變化,在單頁面應用中,很多的框架都會封裝這個方法成鉤子函數。
相關文章:
1. javascript - js 有什么優雅的辦法實現在同時打開的兩個標簽頁間相互通信?2. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現靈異動畫問題,求解決3. java - 新手做一個安卓視頻播放器,想實現一個進度條,按鈕那種在視頻下方懸浮的功能,不知道思路!4. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?5. nginx配置server模塊的問題6. java - android代碼重構:如何把app設置里的頭像UI做成通用的?7. node.js - express請求的具體方法8. javascript - angular和jquery都用到了$符號,一起用會不會沖突?9. 想找個php大神仿個網站。10. javascript - 怎樣限制同一個瀏覽器不能登錄兩個賬號
