2015-10-23 74 views
0

我有ID [1,2,3,4]的列表,我需要更新這個ID和我的更新的答案我需要使UI更新顯示列表。 我必須在我的名單異步更新的每一行,一旦一個ID更新完成後我將UI更新此行

我的做法是讓for循環,並使$ http請求每個ID

for(var i = 0 ; i < ids.length; i++){ 
    $http.get("api/update?Id=" + ids[i]).then(function (result) { 
          $scope.nodeUpdate = result; 
    }); 
} 

    $scope.$watch('nodeUpdate', function() { 
     //update node result, the result will have node id+new data 
    }); 

您怎麼看?這應該很好嗎? 有沒有更好的方法來做到這一點?

謝謝,防止代碼創建anononyms函數調用堆棧

+0

爲什麼要使用手錶?只需從http回調函數中調用「更新節點結果」的函數即可。 –

+0

你說得對,我可以這樣做。你認爲這樣我不會錯過任何結果。如果2個結果同時返回,該怎麼辦? – user2095956

+0

JavaScript是單線程的。兩件事情沒有辦法同時發生。 –

回答

1

更好的辦法。

for(var i = 0 ; i < ids.length; i++){ 
    (function() 
     { 
     $http.get("api/update?Id=" + id).then(function (result) { 
      $scope.nodeUpdate = result; 
     }); 
    )(ids[i]); 
} 
+0

請解釋你在這裏做了什麼 – user2095956