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 相关文章推荐
javascript 面向对象,实现namespace,class,继承,重载
Oct 29 Javascript
jQuery asp.net 用json格式返回自定义对象
Apr 07 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
Feb 27 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
基于jQuery实现多层次的手风琴效果附源码
Sep 21 Javascript
快速入门Vue
Dec 19 Javascript
AngularJS实现网站换肤实例
Feb 19 Javascript
js实现倒计时效果(小于10补零)
Mar 08 Javascript
JS获取填报扩展单元格控件的值的解决办法
Jul 14 Javascript
原生js FileReader对象实现图片上传本地预览效果
Mar 27 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
vue下canvas裁剪图片实例讲解
Apr 16 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检测网页是否被百度收录的函数代码
2013/10/09 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
Node.js模块加载详解
2014/08/16 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
办理生育手续介绍信
2014/01/14 职场文书
十佳护士获奖感言
2014/02/18 职场文书
小学五一劳动节活动总结
2015/02/09 职场文书
物业工程部岗位职责
2015/02/11 职场文书
联谊活动总结范文
2015/05/09 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL