2016-11-16 4 views
-1

Как правильно показать и скрыть ajax-загрузчик вместе с ajax-вызовом для цикла.Ajax вызов внутри цикла

$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

Один из вариантов, чтобы проверить, когда все Ajax вызова было сделано:

$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

скрывается, но ... изображение моего погрузчика с вращающимся движением. Круговое вращение, которое застревает –