AngularJS監聽路由的變化範例程式碼_AngularJS

來源:互聯網
上載者:User

話不多說,我們下面直接來看實現的範例程式碼

【一】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('模板載入完成後'); }); 

總結

以上就是這篇文章的全部內容,希望能對大家的學習或者工作帶來一定的協助,如果有疑問大家可以留言交流。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.