2017-05-26 33 views
2

我已經在$ionicView.beforeLeave事件處理程序中編寫了代碼。但它似乎沒有效果。因爲當這個事件發生時,頁面已經移動了,所以彈出確認對話框爲時已晚。而且我不知道如何防止這個事件的默認行爲。我試過event.preventDefault(),但它沒用。任何人都可以幫助我?提前致謝!在Ionic中,如何讓用戶在離開頁面之前進行確認?如果選擇否,如何取消離開行爲?

$rootScope.$on("$ionicView.beforeLeave", function (event, view) { 
 
    $ionicPopup.confirm({ 
 
    title: "Confirm", 
 
    template: "Data has been modified. Are you sure to discard the changes and leave anyway?" 
 
    }).then(function (res) { 
 
    res || event.preventDefault(); 
 
    }); 
 
});

+0

https://stackoverflow.com/a/29690353/6554634參考這個鏈接,並檢查對同一問題的其他答案 –

回答

0

如果您使用的是默認的UI,然後路由器的選擇是將所有本上$stateChangeStart事件。

$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) { 
    // Navigation will be prevented 
    if (!some_check_variable) { 
     event.preventDefault(); 
    } 
}); 

你可以閱讀更多的UI的路由器文檔在這裏:https://github.com/angular-ui/ui-Router/wiki

檢查stateChangeStart部分

相關問題