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 相关文章推荐
给artDialog 5.02 增加ajax get功能详细介绍
Nov 13 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
Nov 17 Javascript
jQuery的实例及必知重要的jQuery选择器详解
May 20 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
Sep 19 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
Oct 26 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
Nov 27 Javascript
对angular 监控数据模型变化的事件方法$watch详解
Oct 09 Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
Feb 10 Javascript
微信小程序点击item使之滚动到屏幕中间位置
Mar 25 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
Aug 03 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中对2个数组相加的函数
2011/06/24 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
vue二级路由设置方法
2018/02/09 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
python动态监控日志内容的示例
2014/02/16 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
django实现前后台交互实例
2017/08/07 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
django删除表重建的实现方法
2019/08/28 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
python numpy实现rolling滚动案例
2020/06/08 Python
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
公司业务主管岗位职责
2013/12/07 职场文书
中学家长会邀请函
2014/02/03 职场文书
个人课题方案
2014/05/08 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
详解Python描述符的工作原理
2021/06/11 Python
用JS创建一个录屏功能
2021/11/11 Javascript
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript