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监听键盘事件示例代码
Jul 26 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
Oct 29 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
一款简单的jQuery图片标注效果附源码下载
Mar 22 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
Aug 04 Javascript
AngularJS模仿Form表单提交的实现代码
Dec 08 Javascript
Bootstrap禁用响应式布局的实现方法
Mar 09 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
jQuery操作cookie的示例代码
Jun 05 jQuery
javascript实现弹幕墙效果
Nov 28 Javascript
elementui的el-popover修改样式不生效的解决
Jun 30 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
PHP 面向对象 final类与final方法
2010/05/05 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
Zabbix实现微信报警功能
2016/10/09 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
如何在sublime编辑器中安装python
2020/05/20 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
初婚未育证明
2014/01/15 职场文书
模范家庭事迹材料
2014/02/10 职场文书
上课看小说检讨书
2014/02/22 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
小学班级口号
2014/06/09 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis