2017-04-13 46 views
0

我正在向我的數據庫發出請求,並且返回它很好,但我想將它存儲到一個數組中,以便我可以在另一個請求中再次遍歷它。但是,我不能這樣做,因爲我無法訪問我的代碼中的數組長度。迭代通過控制器中的數組javascript

'use strict' 
var myApp = angular.module('dashApp', []); 

var availiable = []; 

myApp.controller('dashCtrl', ['$scope', '$http', function($scope, $http) { 

    var getavailable = function() { 
     $http.get('/availableList').success(function(response) { 
      for (var i = 0; i < response.length; i++) { 
      var av = new Object(); 
      av.Building = response[i].BuildingName; 
      av.Townhall = response[i].Townhall; 
      availiable.push(av); 
      } 
     }; 

     var main = function(req, response) { 
      getavailable(); 
      console.log(availiable); 
      console.log(avInt); 
      for (var i = 0; i < availiable.length; i++) { 
      console.log("in forloop"); 
      var count = getCount(availiable[i]); 

      } 
      $scope.BuilingList = $scope.finalList; 
      $scope.finalList = ""; 

     }; 

     main(); 

     }]); 
+0

你在響應中看到了什麼? – Sajeetharan

+0

我從我的Json查詢中得到一個對象數組,這設置爲數組availiable fine,但availiable.length看起來不會產生任何東西 –

+1

'$ http'是**異步** ...您試圖訪問數據之前它已經收到。這就像吃了一個尚未交付的比薩 – charlietfl

回答

0

沒有必要甚至使用for循環

這應該很好地工作。

$http.get('/availableList').success(function(response) { 
    available = response.data; 
    ....