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 相关文章推荐
破除一些网站复制、右键限制
Nov 04 Javascript
js 省地市级联选择
Feb 07 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
Nov 23 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
在JavaScript中操作时间之setYear()方法的使用
Jun 12 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
Jul 10 Javascript
node.js微信公众平台开发教程
Mar 04 Javascript
seajs模块之间依赖的加载以及模块的执行
Oct 21 Javascript
Bootstrap Table使用整理(二)
Jun 09 Javascript
web前端页面生成exe可执行文件的方法
Feb 08 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
实现一个Vue自定义指令懒加载的方法示例
Jun 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 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
js实现图片无缝循环轮播
2019/10/28 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
python中的lambda表达式用法详解
2016/06/22 Python
wxPython实现文本框基础组件
2019/11/18 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
医学院护理专业应届生求职信
2013/11/12 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
护士自我鉴定总结
2014/03/24 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
小学体育课教学反思
2016/02/16 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript