AngularJS监听路由的变化示例代码  更新时间:2016年09月23日 08:33:44   作者:宋俊波   这篇文章给大家分享了如何利用AngularJS监听路由的变化,文中给出了示例代码相信对大家的理解很有帮助,有需要的朋友们可以参考借鉴。 话不多说,我们下面直接来看实现的示例代码 【一】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(‘模板加载完成后’); }); 总结 以上就是这篇文章的全部内容,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。 您可能感兴趣的文章: 用director.js实现前端路由使用实例 director.js实现前端路由使用实例 vue.js使用watch监听路由变化的方法 VueJs路由跳转——vue-router的使用详解 JS实现简单路由器功能的方法 AngularJS路由实现页面跳转实例 AngularJS 路由详解和简单实例 react-router JS 控制路由跳转实例 使用AngularJS对路由进行安全性处理的方法 JS实现前端路由功能示例【原生路由】 angularjs 路由 监听 相关文章 angularjs通过过滤器返回超链接的方法 这篇文章主要介绍了angularjs通过过滤器返回超链接的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2018-10-10 angularjs的select使用及默认选中设置 本篇文章主要介绍了angularjs的select使用及默认选中设置,非常具有实用价值,需要的朋友可以参考下 2017-04-04 AngularJS Bootstrap详细介绍及实例代码 本文主要介绍AngularJS Bootstrap,这两对AngularJS Bootstrap的基础知识做了详细讲解,并提供简单示例,有需要的小伙伴可以参考下 2016-07-07 angularjs下ng-repeat点击元素改变样式的实现方法 今天小编就为大家分享一篇angularjs下ng-repeat点击元素改变样式的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2018-09-09 浅谈Angular文字折叠展开组件的原理分析 本篇文章主要介绍了浅谈Angular文字折叠展开组件的原理分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2017-11-11 浅谈AngularJS中ng-class的使用方法 下面小编就为大家带来一篇浅谈AngularJS中ng-class的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2016-11-11 AngularJS入门教程之REST和定制服务详解 本文主要讲解 AngularJS REST和定制服务的知识,这里帮大家整理了相关知识,并附示例代码,详细讲解了RES和定制服务的知识,有兴趣的小伙伴可以参考下 2016-08-08 angular2中Http请求原理与用法详解 这篇文章主要介绍了angular2中Http请求原理与用法,结合实例形式分析了AngularJS中http相关模块实现http服务请求与相应的相关操作技巧,需要的朋友可以参考下 2018-01-01 详解AngularJs HTTP响应拦截器实现登陆、权限校验 本篇文章主要介绍了AngularJs HTTP响应拦截器实现登陆、权限校验,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 2017-04-04 Angular实现点击按钮后在上方显示输入内容的方法 这篇文章主要介绍了Angular实现点击按钮后在上方显示输入内容的方法,涉及AngularJS事件响应及页面元素属性动态设置相关操作技巧,需要的朋友可以参考下 2017-12-12 最新评论

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

【一】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('模板加载完成后'); 
}); 

总结

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

您可能感兴趣的文章:

  • 用director.js实现前端路由使用实例
  • director.js实现前端路由使用实例
  • vue.js使用watch监听路由变化的方法
  • VueJs路由跳转——vue-router的使用详解
  • JS实现简单路由器功能的方法
  • AngularJS路由实现页面跳转实例
  • AngularJS 路由详解和简单实例
  • react-router JS 控制路由跳转实例
  • 使用AngularJS对路由进行安全性处理的方法
  • JS实现前端路由功能示例【原生路由】
张贴在3