欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-01-13 17:29:13
话不多说,我们下面直接来看实现的示例代码 【一】angular 路由状态发生改变时可以通过' $statechangestart '、' $statechangesucc...

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

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

总结

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