【发布时间】:2018-06-12 12:34:28
【问题描述】:
我的页面上有两个组件:导航组件和表单组件。如果表单脏了,我想通知用户是否离开页面(通过单击导航组件或按下浏览器的“返回”按钮)。我已经实现了脏检查,但我不知道如何实现通知。
我正在使用 Angular 1.6、组件和 UI-Router。我尝试了几种解决方案,但 $log 没有被触发。
$scope.$on('$stateChangeStart', e => { $log.log(e); });
$scope.$on('$routeChangeStart', e => { $log.log(e); });
$rootScope.$on('$stateChangeStart', e => { $log.log(e); });
$rootScope.$on('$routeChangeStart', e => { $log.log(e); });
一旦我能够检测到路线何时发生变化,我将如何防止路线发生变化,以便显示我的通知,告知其表单已脏?
【问题讨论】:
-
你用的是什么版本的ui-router?如果是 1.0+,您可以使用
uiCanExit挂钩。 github.com/ui-router/sample-app-angularjs/blob/…
标签: javascript angularjs angular-ui-router angular-components