第11篇:Angular 监听路由变化

原文:http://blog.csdn.net/JunBo_Song/article/details/52127485

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值