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清除input中type等于file的值域(示例代码)
Dec 24 Javascript
js获得页面的高度和宽度的方法
Feb 23 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
Jul 04 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
解析Vue2.0双向绑定实现原理
Feb 23 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 Javascript
element-ui 时间选择器限制范围的实现(随动)
Jan 09 Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 Javascript
Vue路由的模块自动化与统一加载实现
Jun 05 Javascript
关于angular浏览器兼容性问题的解决方案
Jul 26 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 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
PHP面向对象编程快速入门
2006/10/09 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
ucenter通信原理分析
2015/01/09 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
jQuery Ajax之$.get()方法和$.post()方法
2009/10/12 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
js有序数组的连接问题
2013/10/01 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
linux下安装easy_install的方法
2013/02/10 Python
Python函数返回值实例分析
2015/06/08 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
Tornado 多进程实现分析详解
2018/01/12 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
详解python polyscope库的安装和例程
2020/11/13 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
英语专业个人求职自荐信
2013/09/21 职场文书
党风廉设责任书
2014/04/16 职场文书
后备干部培训方案
2014/05/22 职场文书
检讨书怎么写
2015/01/23 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
2015年秋季小学开学典礼主持词
2015/07/16 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL