2016-11-16 1 views
-1

ajax 호출자와 함께 Ajax 로더를 올바르게 표시하고 숨기는 방법.Ajax for 루프를 호출하십시오.

$scope.upload = function(){ 
    $(".loader").show(); 
    for(var i=0;i<count ;i++){ 
    $.ajax({ 
       type: "POST", 
       url: "/upload", 
       data: data; 
       contentType : 'multipart/form-data', 
       success: function(msg){ 

       }); 
       } 
      }); 
} 

}

+0

가 varibale의 flagCounter을 확인하고 counterFlag를 증가 ajax 요청이 완료된 후 요청이 같으면 개수가 같은지 확인한 다음 로더를 숨 깁니다 –

답변

0

하나의 옵션은 모든 아약스 호출이 완료되었을 때 확인하는 것입니다 :

$scope.upload = function(){ 
    $(".loader").show(); 
    var calls = []; 
    for(var i=0;i<count ;i++){ 
    calls[i] = $.ajax({ 
        type: "POST", 
        url: "/upload", 
        data: data; 
        contentType : 'multipart/form-data', 
        success: function(msg){ 

        }); 

      }); 
    } 
    Promisse.all(calls).then(function(data){ 
     $(".loader").hide(); 
    }); 
} 
0

다음과 같이하십시오 :

$(".loader").show(); 
var counterFlag =0; 
for (var i = 0; i < count; i++){ 
    $.ajax({ 
      //ajax options 
      success: function(msg){ 

      }, 
      complete:function(d){ 
       counterFlag++; 
       if(counterFlag==count) 
       { 
        $(".loader").hide(); 
       } 
      }); 
    } 
    } 
+0

로더가 작동하지만 여전히 갇혀 있습니다 ... –

+0

로더가 숨어 있지 않습니까? –

+0

숨어 있지만 ... spine motion이있는 내 로더 이미지 ... 붙어있는 원형 회전 –