AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

AngularJS监听路由的变化示例代码

51自学网 http://www.wanshiok.com
angularjs,路由变化,angular,监听路由变化,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('模板加载完成后'); }); 

总结

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


angularjs,路由变化,angular,监听路由变化,angularjs,监听路由  
上一篇:AngularJS通过$location获取及改变当前页面的URL  下一篇:同步异步动态引入js文件的几种方法总结