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 相关文章推荐
网站接入QQ登录的两种方法
Jul 22 Javascript
js实现遮罩层弹出框的方法
Jan 15 Javascript
javascript实现方法调用与方法触发小结
Mar 26 Javascript
20分钟轻松创建自己的Bootstrap站点
May 12 Javascript
JS百度地图搜索悬浮窗功能
Jan 12 Javascript
layui选项卡效果实现代码
May 19 Javascript
node.js操作mongodb简单示例分享
May 25 Javascript
vue 项目地址去掉 #的方法
Oct 20 Javascript
express.js中间件说明详解
Mar 19 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
laydate只显示时分 不显示秒的功能实现方法
Sep 28 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
Nov 11 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
多人战的战术与战略
2020/03/04 星际争霸
PHP新手上路(二)
2006/10/09 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
python统计日志ip访问数的方法
2015/07/06 Python
浅谈django中的认证与登录
2016/10/31 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Python小白垃圾回收机制入门
2020/06/09 Python
python实现在线翻译
2020/06/18 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
韩国11街:11STREET
2018/03/27 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
学生吸烟检讨书
2014/09/14 职场文书
个人务虚会发言材料
2014/10/20 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
财产保全担保书
2015/01/20 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
Python集合set()使用的方法详解
2022/03/18 Python