2017-04-13 45 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; 
    ....