1. 程式人生 > >Angular 監聽路由變化

Angular 監聽路由變化

oca sta 實現 content 地址 root control $watch class

var app = angular.module(‘Mywind‘,[‘ui.router‘])

//Angular 監聽路由變化
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 == "index1") {
//獲取參數之後可以調請求判斷需要渲染什麽頁面,渲染不同的頁面通過 $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) {

  })
}
app.controller(‘Myautumn‘,function($scope,$http,$filter){

  

//執行路由事件
// $viewContentLoading- 當視圖開始加載,DOM渲染完成之前觸發,該事件將在$scope鏈上廣播此事件。
  $scope.$watch(‘$viewContentLoading‘,function(event, viewConfig){
// alert(‘模板加載完成前‘);
  });
//$viewContentLoaded- 當視圖加載完成,DOM渲染完成之後觸發,視圖所在的$scope發出該事件。
  $scope.$watch(‘$viewContentLoaded‘,function(event){
// alert(‘模板加載完成後‘);
  });

});

Angular 監聽路由變化