用UI-Router防止返回按钮上的状态改变

Prevent state change on back button with UI-Router

本文关键字:状态 改变 按钮 返回 UI-Router      更新时间:2023-09-26

有一个页面编辑器在我的应用程序,我希望它提示用户保存,如果他们试图导航离开时,有未保存的更改。我设法覆盖了我的基础,关于窗口重新加载和链接,但我似乎无法阻止UI-Router参与状态变化与后退/前进按钮点击。

我正试图从$stateChangeStart事件中做到这一点,我有点不确定如何停止状态变化。我也尝试过$window.onpopstate,但它似乎比路由器落后一步。

试试这个:

$scope.$on('$stateChangeStart', function(event) {
    if ($scope.unsavedChanges) { //or however you check for unsaved changes
        event.preventDefault();
    }
});