我的应用中有一个页面编辑器,如果有未保存的更改,我希望它提示用户保存。我设法覆盖了关于窗口重新加载和链接的基础,但我似乎无法阻止UI-Router通过后退/前进按钮点击进行状态更改。
我试图从$stateChangeStart
事件中做到这一点,并且我不确定如何停止状态变化。我也尝试了$window.onpopstate
,但它似乎是路由器的一步。
答案 0 :(得分:4)
试试这个:
$scope.$on('$stateChangeStart', function(event) {
if ($scope.unsavedChanges) { //or however you check for unsaved changes
event.preventDefault();
}
});