zoukankan      html  css  js  c++  java
  • 【转载】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) { 
      
      }) 
     }

    二、在页面渲染中 可通过' $viewContentLoading '和 ' $viewContentLoaded '监听页面渲染状态:渲染开始和渲染结束。

    在控制器中添加以下代码实现监听:

    // $viewContentLoading- 当视图开始加载,DOM渲染完成之前触发,该事件将在$scope链上广播此事件。 
    scope.$watch('$viewContentLoading',function(event, viewConfig){ 
     alert('模板加载完成前'); 
    }); 
    //$viewContentLoaded- 当视图加载完成,DOM渲染完成之后触发,视图所在的$scope发出该事件。 
    $scope.$watch('$viewContentLoaded',function(event){ 
      alert('模板加载完成后'); 
    });
  • 相关阅读:
    vmareworkstation 15 安装密钥
    Linux进入ftp界面退出方法
    linux安装mysql(5.1.73)
    安装http服务,用http搭建web网
    telnet远程连接
    yum出现问题解决方法
    samba
    nfs搭建
    解决VMwareworkstation无法在windows上运行
    2 shell编程
  • 原文地址:https://www.cnblogs.com/modou/p/5936457.html
Copyright © 2011-2022 走看看