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 18 Javascript
IE和firefox浏览器的event事件兼容性汇总
Dec 06 Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 Javascript
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
Mar 22 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
Aug 11 Javascript
完美实现js选项卡切换效果(二)
Mar 08 Javascript
Vue的路由动态重定向和导航守卫实例
Mar 17 Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 Javascript
JavaScript cookie原理及使用实例
May 08 Javascript
openlayers实现地图弹窗
Sep 25 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读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python中for循环控制语句用法实例
2015/06/02 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
中学生学习生活的自我评价
2013/10/26 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
贷款工资证明范本
2015/06/12 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书