6.6 路由事件

使用AngularJS路由机制实现多视图应用时,有以下几个相关的事件需要我们关注。

1. $location相关事件

● $locationChangeStart:该事件会在我们调用$location服务的一些方法(例如path()方法)改变浏览器地址栏之前触发,并会被传递到$rootScope作用域中。

● $locationChangeSuccess:该事件在调用$location服务改变浏览器地址栏URL后触发,但是当我们监听$locationChangeStart事件并调用preventDefault()方法阻止了事件的传播后,该事件将不会被触发。

2. $route相关事件

● $routeChangeStart:该事件会在AngularJS开始改变路由时触发,也会被传递到$rootScope作用域中。

● $routeChangeSuccess:该事件会在路由改变成功时触发,AngularJS的ng-view指令会监听该事件,接收到该事件时会实例化相应的控制器并渲染视图。

● $routeChangeError:路由切换异常时触发,该事件同样会传递到$rootScope作用域中。