2016-05-16 5 views
0

私はanglejsのコントローラを持っていて、ページにローダーを表示するロジックが書かれています。

appCtrl.js

<div ng-show="isAnythingLoading()" class="pageLoader"> 
     <div class="loaderBackdrop"></div> 
      <div class="sk-wave"> 
        <div class="sk-rect sk-rect1"></div> 
        <div class="sk-rect sk-rect2"></div> 
        <div class="sk-rect sk-rect3"></div> 
        <div class="sk-rect sk-rect4"></div> 
        <div class="sk-rect sk-rect5"></div> 
      </div> 
     </div> 
<div ui-view=""></div> 

として

$rootScope.loaderExceptionCount = 0 ; 
    $scope.isAnythingLoading = function() { 
     console.log($http.pendingRequests, $http); 
     return $http.pendingRequests.length > $rootScope.loaderExceptionCount; 
    }; 

とindex.htmlを私はショーローダーを望んでいない1つのポストAPI呼び出しがあります。特定のAPI呼び出しのローダーを無効にすることはできますか?

+0

可能でしょうか? –

答えて

2

それは明らかに

var skippedUrls = ['...']; 
$scope.isAnythingLoading = function() { 
    var reqCount = $http.pendingRequests 
    .filter(function (req) { 
     return !skippedUrls.includes(req.url); 
    }) 
    .length; 
    return reqCount > $rootScope.loaderExceptionCount; 
}; 

The manual状態$http.pendingRequests目的によって解決することができます。現在保留中の要求のための設定オブジェクトの

アレイ。これは、主にデバッグ目的で使用されることを意味する です。

もっと固溶体は、上記と同じことをし$httpインターセプター、積載状態を保持している別のサービスとUI要素の状態をバインドするディレクティブを伴うだろう。

+0

ありがとう、その非常に完全に働いている:) –

関連する問題