2015-06-24 85 views
0

我的應用程序出現嚴重問題,我使用AngularJs。 我使用「for」來完成我的資源。對於每個資源我做$ http.get有關於這個資源的數據。 我的問題是,我的程序不等待獲得$ http.get的響應,然後$ http.get()適用於我的上一個資源。Javascript angular:阻止http.get響應

我首先看到我的資源的所有警報,然後警告('新用戶')完成。

感謝的;)

$scope.loadPlanning = function() { 
     //var tasksRessource = []; 
     //tasksRessource.push({name: 'Go-liiive', color: '#93C47D', from: new Date(2013, 10, 23, 1, 0, 0), to: new Date(2013, 10, 25, 24, 0, 0)}); 
     //tasksRessource.push({name: 'Go-live', color: '#93C47D', from: new Date(2013, 10, 27, 1, 0, 0), to: new Date(2013, 10, 29, 24, 0, 0)}); 
     var data = []; 
     for(var i = 0; i < $scope.ressources.length; i++) { 

      var nameR = $scope.ressources[i].firstName + ' ' + $scope.ressources[i].lastName; 
      alert(nameR); 
      // On récupère la liste des visites clients associé a cet utilisateur 
      //Visiteclient.getByRessource({id: $scope.ressources[i].id}, function(result) { 
      $http.get("api/api/visiteclientsbyressource/" + $scope.ressources[i].id).success(function(result) { 
       var tasksRessource = []; 
       $scope.visiteclietest = result; 

       for (var p = 0; p < $scope.visiteclietest.length; p++) { 
        var name = result[p].name; 
        var dateDebu = result[p].date; 
        var dateFin = result[p].date; 
        tasksRessource.push({name: name, color: '#93C47D', from: new Date(dateDebu), to: new Date(dateFin)}); 
       } 

       $scope.pushData(tasksRessource); 
      }); 

      $scope.pushData = function(taskr) { 
       alert ('new user');  
       data.push({name: nameR,classes: "custom-row", tasks : taskr}); 
       console.log({name: nameR,classes: "custom-row", tasks : taskr}); 
      } 

     } 
    } 
+0

一個指令有你的代碼的幾個問題,但我真的不理解您的問題或發現一個嚴重的問題。你期望結果如何,你如何檢查它? – Michael

回答

0

由於AJAX調用是異步你應該使用的承諾。角器具使用$q

這裏說的圖案是詳細tutorial使用承諾作爲內角