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 闭包在封装函数时的简单分析
Nov 28 Javascript
IE、FF浏览器下修改标签透明度
Jan 28 Javascript
如何正确使用javascript 来进行我们的程序开发
Jun 23 Javascript
原生js实现弹出层登录拖拽功能
Dec 05 Javascript
Angularjs2不同组件间的通信实例代码
May 06 Javascript
JavaScript中的return布尔值的用法和原理解析
Aug 14 Javascript
js注册时输入合法性验证方法
Oct 21 Javascript
VeeValidate在vue项目里表单校验应用案例
May 09 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
JavaScript设计模式之命令模式实例分析
Jan 16 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
Mar 28 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
Nov 04 Javascript
微信小程序开发之入门实例教程篇
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实现对两个数组进行减法操作的方法
2015/04/17 PHP
php注册登录系统简化版
2020/12/28 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
python中base64加密解密方法实例分析
2015/05/16 Python
Python绘制七段数码管实例代码
2017/12/20 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python中的枚举类型示例介绍
2019/01/09 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
优质服务活动实施方案
2014/05/02 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python