AngularJS监听路由的变化示例代码


Posted in Javascript onSeptember 23, 2016

话不多说,我们下面直接来看实现的示例代码

【一】Angular 路由状态发生改变时可以通过' $stateChangeStart '、' $stateChangeSuccess '、' $stateChangeError '监听,通过注入'$location'实现状态的管理

代码示例如下:

function run($ionicPlatform, $location, Service, $rootScope, $stateParams) { 
  //路由监听事件 
  $rootScope.$on('$stateChangeStart', 
    function(event, toState, toParams, fromState, fromParams) { 
     console.log(event); 
     console.log(toState); 
     console.log(toParams); 
     console.log(fromState); 
     console.log(fromParams); 
     if (toState.name == "homePage") { 
      //获取参数之后可以调请求判断需要渲染什么页面,渲染不同的页面通过 $location 实现 
      if (toParams.id == 10) { 
       //$location.path();//获取路由地址 
       // $location.path('/validation').replace(); 
       // event.preventDefault()可以阻止模板解析 
      } 
     } 
    }) 
   // stateChangeSuccess 当模板解析完成后触发 
  $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) { 
 
  }) 
 
  // $stateChangeError 当模板解析过程中发生错误时触发 
  $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) { 
 
  }) 
 }

【2】在页面渲染中 可通过' $viewContentLoading '和 ' $viewContentLoaded '监听页面渲染状态:渲染开始和渲染结束。

(在控制器中添加以下代码实现监听)

// $viewContentLoading- 当视图开始加载,DOM渲染完成之前触发,该事件将在$scope链上广播此事件。 
scope.$watch('$viewContentLoading',function(event, viewConfig){ 
 alert('模板加载完成前'); 
}); 
//$viewContentLoaded- 当视图加载完成,DOM渲染完成之后触发,视图所在的$scope发出该事件。 
$scope.$watch('$viewContentLoaded',function(event){ 
  alert('模板加载完成后'); 
});

总结

以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
js利用div背景,做一个竖线的效果。
Nov 22 Javascript
jQuery温习篇 强大的JQuery选择器
Apr 24 Javascript
深入理解javascript作用域和闭包
Sep 23 Javascript
浅谈JavaScript数据类型
Mar 03 Javascript
Boostrap模态窗口的学习小结
Mar 28 Javascript
微信小程序开发之Tabbar实例详解
Jan 09 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
Sep 01 Javascript
webpack实现一个行内样式px转vw的loader示例
Sep 13 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
Jul 03 Javascript
ES6对象操作实例详解
May 23 Javascript
如何利用JavaScript实现二叉搜索树
Apr 02 Javascript
同步异步动态引入js文件的几种方法总结
Sep 23 #Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 #Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 #Javascript
form表单转Json提交的方法(推荐)
Sep 23 #Javascript
关于验证码在IE中不刷新的快速解决方法
Sep 23 #Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 #Javascript
使用bootstrap实现多窗口和拖动效果
Sep 22 #Javascript
You might like
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
详解Python中的各种函数的使用
2015/05/24 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
好的自荐信的要求
2013/10/30 职场文书
晚归检讨书
2014/02/19 职场文书
求职信名称怎么写
2014/05/26 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript