2017-10-13 91 views
1

如何處理來自給定提琴手的這段代碼片段。迭代期間處理rest API angularjs

for (var i = 0; i < carList.length; i++) { 
    $http.get("accesoriesList.htm").then(function(accesories) { 
     $scope.accesoriesList.push({"id": carId, "name": carName, "accesories" : accesories}); 
} 

提琴手 https://jsfiddle.net/gsk/euuhsowu/

我試圖讓汽車的配件清單。 但我得到不同的問題:

  1. REST調用被解僱異步並沒有設置配件,以各自的汽車項目
  2. 我希望基於自其他API乘用車項目設置配件迭代已經解僱,但我只得到一個設置給所有配件的迴應。
  3. Rest API在迭代中被觸發,所以我期望得到carList.length響應,而不是我得到一個響應。
+0

你如何認識到你只有一個迴應你的小提琴不能正常工作 – jitender

+0

Ofcourse提琴手是樣品。我把警報消息,以檢查它在我的應用程序中的響應返回。 – Pez

回答

0

你應該總是認爲異步。 順序異步調用應放在以前的回調函數中。

所以第二個API調用(accesoriesList.htm)應該是第一回調中:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope, $http) { 
    $scope.carList = []; 
    $scope.accesoriesList = []; 

    $http.get("carList.htm").then(function(data) { 
     for (var i = 0; i < data.length; i++) { 
      $scope.carList.push({"id": data[i].carId, "name": data[i].carName}); 
     } 

     for (var i = 0; i < $scope.carList.length; i++) { 
     $http.get("accesoriesList.htm").then(function(accesories) { 
      $scope.accesoriesList.push({"id": carId, "name": carName, "accesories" : accesories}); 
     }); 
     } 

    }); 

}); 

也許這只是一個例子,但我認爲,第二個電話應該有一定的路由規則接收carId ..