使用AngularJS时,当路由发生改变时,我们需要做某些处理,此时可以监听路由事件,常用的是$routeStartChange,$routeChangeSuccess。完整例子如下:
<script type="text/ng-template" id="home.html">
Home
<script type="text/ng-template" id="about.html">
About
在输入框中尝试输入:
姓名:
你输入的为: {{name}}
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js">
<script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js">
<script type="text/javascript">
angular.module('ngRouteExample',['ngRoute'])
.config(function ($routeProvider) {
$routeProvider.
when('/home',{
templateUrl: 'home.html',controller: 'HomeController'
}).
when('/about',{
templateUrl: 'about.html',controller: 'AboutController'
}).
otherwise({
redirectTo: '/home'
});
})
.run(['$rootScope','$location',function($rootScope,$location) {
/ 监听路由的状态变化 /
$rootScope.$on('$routeChangeStart',function(evt,next,current){
console.log('route begin change');
});
$rootScope.$on('$routeChangeSuccess',current,prevIoUs) {
console.log('route have already changed :'+$location.path());
});
}])
.controller('HomeController',function ($scope) {
$scope.records = [{
"Name" : "Alfreds Futterkiste","Country" : "Germany"
},{
"Name" : "Berglunds snabbköp","Country" : "Sweden"
},{
"Name" : "Centro comercial Moctezuma","Country" : "Mexico"
},{
"Name" : "Ernst Handel","Country" : "Austria"
}]
})
.controller('AboutController',function ($scope) {
$scope.name = '呵呵';
});