AngularJS监听路由变化的方法


Posted in Javascript onMarch 07, 2017

使用AngularJS时,当路由发生改变时,我们需要做某些处理,此时可以监听路由事件,常用的是$routeStartChange, $routeChangeSuccess。完整例子如下:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <title>AngularJS监听路由变化</title>
</head>
<body ng-app="ngRouteExample">
  <div id="navigation"> 
   <a href="#/home" rel="external nofollow" >Home</a>
   <a href="#/about" rel="external nofollow" >About</a>
  </div>
   
  <div ng-view></div>

  <script type="text/ng-template" id="home.html">
   <h1> Home </h1>
   <table>
    <tbody>
     <tr ng-repeat="x in records" style="background:#abcdef;">
      <td>{{x.Name}}</td>
      <td>{{x.Country}}</td> 
     </tr>     
    </tbody>
   </table>
  </script>

  <script type="text/ng-template" id="about.html">
   <h1> About </h1>
   <p>在输入框中尝试输入:</p>
   <p>姓名:<input type="text" ng-model="name"></p>
   <p>你输入的为: {{name}}</p>
  </script>

  <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
  <script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>
  <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', function(evt, 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 = '呵呵';
  });
</script>  
</body>
</html>

上述的例子是AngularJS 1的,对于Angular2是否也可以用,还没尝试过,有机会验证了再记录下咯~~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的this实例分析
Apr 28 Javascript
JS打印gridview实现原理及代码
Feb 05 Javascript
JS完成代码前最好对其做5件事
Apr 07 Javascript
给html超链接设置事件不使用href来完成跳
Apr 20 Javascript
node.js中的fs.statSync方法使用说明
Dec 16 Javascript
浅谈js中的in-for循环
Jun 28 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
详解webpack+express多页站点开发
Dec 22 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
Aug 15 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
Mar 12 Javascript
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
微信小程序开发之入门实例教程篇
Mar 07 #Javascript
JavaScript实现替换字符串中最后一个字符的方法
Mar 07 #Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 #Javascript
jQuery模拟下拉框选择对应菜单的内容
Mar 07 #Javascript
详解JS异步加载的三种方式
Mar 07 #Javascript
无法获取隐藏元素宽度和高度的解决方案
Mar 07 #Javascript
angularjs+bootstrap菜单的使用示例代码
Mar 07 #Javascript
You might like
PHP生成带有雪花背景的验证码
2006/10/09 PHP
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
python实现在windows服务中新建进程的方法
2015/06/30 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
对Python中plt的画图函数详解
2018/11/07 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
自荐书封面下载
2013/11/29 职场文书
个人简历自荐信
2013/12/05 职场文书
教师党员一句话承诺
2014/03/28 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
导师评语大全
2014/04/26 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android