使用UI-Router防止后退按钮上的状态更改

时间:2015-09-01 20:29:58

标签: javascript angularjs angular-ui-router

我的应用中有一个页面编辑器,如果有未保存的更改,我希望它提示用户保存。我设法覆盖了关于窗口重新加载和链接的基础,但我似乎无法阻止UI-Router通过后退/前进按钮点击进行状态更改。

我试图从$stateChangeStart事件中做到这一点,并且我不确定如何停止状态变化。我也尝试了$window.onpopstate,但它似乎是路由器的一步。

1 个答案:

答案 0 :(得分:4)

试试这个:

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