首页 > 编程 > JavaScript > 正文

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

2019-11-20 08:54:09
字体:
来源:转载
供稿:网友

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

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

总结

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表