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 相关文章推荐
在b/s开发中经常用到的javaScript技术
Aug 23 Javascript
javascript下利用arguments实现string.format函数
Aug 24 Javascript
理解Javascript_05_原型继承原理
Oct 13 Javascript
Extjs中使用extend(js继承) 的代码
Mar 15 Javascript
js 控制下拉菜单刷新的方法
Mar 03 Javascript
JavaScript调试技巧之console.log()详解
Mar 19 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
Oct 07 Javascript
vue2组件之select2调用的示例代码
Oct 12 Javascript
解决axios发送post请求返回400状态码的问题
Aug 11 Javascript
微信小程序冒泡事件及其阻止方法实例分析
Dec 06 Javascript
Vue+Element自定义纵向表格表头教程
Oct 26 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递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
简单的自定义php模板引擎
2016/08/26 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
javascript闭包的理解和实例
2010/08/12 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
pyv8学习python和javascript变量进行交互
2013/12/04 Python
python中MySQLdb模块用法实例
2014/11/10 Python
python中split方法用法分析
2015/04/17 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
动态密码技术
2012/10/18 面试题
班长自荐书范文
2014/02/11 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫