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脚本函数库 方便开发
Oct 13 Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
Javascript正则控制文本框只能输入整数或浮点数
Sep 02 Javascript
node.js中的http.response.getHeader方法使用说明
Dec 14 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
浅谈js中test()函数在正则中的使用
Aug 19 Javascript
基于jstree使用AJAX请求获取数据形成树
Aug 29 Javascript
JS+HTML+CSS实现轮播效果
Nov 28 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
vue路由跳转传参数的方法
May 06 Javascript
如何使用Javascript中的this关键字
May 28 Javascript
vue移动端下拉刷新和上滑加载
Oct 27 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 fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
jquery 双色表格实现代码
2009/12/08 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
JS+CSS实现动态时钟
2021/02/19 Javascript
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
python numpy格式化打印的实例
2018/05/14 Python
Python中print和return的作用及区别解析
2019/05/05 Python
Python中格式化字符串的四种实现
2020/05/26 Python
Pandas之缺失数据的实现
2021/01/06 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
c语言常见笔试题总结
2016/09/05 面试题
C++的几个面试题附答案
2016/08/03 面试题
《母鸡》教学反思
2014/02/25 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
大学新闻系自荐书
2014/05/31 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
先进个人申报材料
2014/12/30 职场文书
先进个人总结范文
2015/02/15 职场文书
工作年限证明范本
2015/06/15 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
Pygame如何使用精灵和碰撞检测
2021/11/17 Python