angular.js - 单页应用(ng/vue)该如何监听用户离开当前页面(或者路由)?
问题描述
场景描述:在ng的某个路由中,需要在用户离开当前路由时提示用户是否确认离开
我的疑惑:如果是普通的应用,我们可以使用js来判断用户是否要离开,但是在单页应用中,所有的跳转离开其实都是在一个页面中,我想判断用户是否离开当前路由,但是没找到ng提供的公户离开路由的方法
求各位前辈的思路~
问题解答
回答1:我只知道Vue可以
route: { deactivate() {... }}回答2:
ui-router里面有一个事件可以监控状态的改变,回调函数中参数可以记录当前页面$rootScope.$on(’$stateChangeStart’, function (event, toState, fromState){});
回答3:ng中如果使用ui-router来作为路由系统。可以使用ui-router的事件系统来对路由状态的变化做出相应的业务逻辑。
$rootScope.$on(’$stateChangeStart’,function(event, toState, toParams, fromState, fromParams){ event.preventDefault(); // transitionTo() promise will be rejected with // a ’transition prevented’ error})
详情可以参考ui-router中的$state
回答4:js原生通过hashchange事件,来监听页面hash是否变化,在单页面应用中,很多的框架都会封装这个方法成钩子函数。
相关文章:
1. docker api 开发的端口怎么获取?2. dockerfile - [docker build image失败- npm install]3. 如何解决docker宿主机无法访问容器中的服务?4. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!5. javascript - Android 的 webview 中怎么监听 url 的 hash 变化6. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?7. html5 - 请问一下写H5的时候 你们都是兼容那些手机8. docker网络端口映射,没有方便点的操作方法么?9. mysql - 仅仅只是把单引号与反斜杠转义不用prepare statement能否避免sql注入?10. angular.js - angularjs scope.$watch取不到input变化的值

网公网安备