2013-07-26 52 views
1

我正在使用AngularJS構建應用程序。我使用Slim在我的應用程序中處理Web服務。返回「undefined」的數組長度

我有一個服務,如:

angular.module('MyApp'). 
factory('MainPage', function($resource,BASE_URL){ 
    return $resource("my api call", {}, {query: {method:'GET'}, isArray:true}); 
}). 

從修身我回來就像一個JSON響應:

$resposedat = array("value1"=>"val1","value2"=>"val2"); 
echo json_encode($resposedat); 

在我的控制器中我已經寫:

var app = angular.module('MyApp') 

app.controller('MainCtrl',function($scope,MainPage,$rootScope){ 
    $scope.mainpage = MainPage.query(); 

    console.info($scope.mainpage); 
    console.info($scope.mainpage.length);//undefined 
}); 

我的控制檯看起來像這樣console.info($scope.mainpage)

資源{$得到:函數,$保存:函數,$查詢:函數,$刪除:函數,$刪除:函數...}

值1: 「VAL1」

值2:「VAL2 「

而且我的控制檯返回undefinedconsole.info($scope.mainpage.length)

我在做什麼在這裏錯了嗎?

回答

2

MainPage.query()是異步的,所以你的數組不存在,因此在你調用它時沒有length屬性。

$scope.mainpage一直持續到檢索到數據爲止,稱爲promise。它充當臨時佔位符。