• 【转载】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('模板加载完成后'); 
    });
  • 相关阅读:
    QPS 与 TPS 简介
    程序员需要学多门语言吗
    Docker 常用命令
    Dockerfile
    Docker-安装与部署
    Docker 容器相关技术
    java多线程 线程八锁
    java多线程 生产者消费者案例-虚假唤醒
    ConcurrentHashMap
    原子变量与CAS算法
  • 原文地址:https://www.cnblogs.com/modou/p/5936457.html
Copyright © 2020-2023  润新知