2015-12-19 142 views
2

我試圖訪問我的資源數組的特定位置,來自查詢,但在我的console.log它沒有出現。獲取資源數組手動元素返回任何東西

$scope.a = []; 
var resourceGet = $resource('myurl'); 
$scope.a = resourceGet.query(function(data){ 
     return data; 
}, function(error){ 
     console.log(error); 
}); 
console.log($scope.a[1]); 

控制檯上沒有任何東西。 但是,我可以使用ng-repeat顯示$ scope.a。

我在做什麼錯了?

+1

該數據不可立即使用。在console.log($ scope.a [1])期間,查詢可能沒有返回數據,因此控制檯中沒有顯示任何內容。 – chaoticmind

回答

3

這是因爲你正在處理異步數據。您的console.log在您給query的回調之前執行,此時數據尚未加載。你寫的代碼(回調除外)是同步的。

編輯:這裏有一個簡單的數據加載示例$http。我建議使用$http來執行簡單的任務,因爲$resource更多的是關於CRUD操作。我個人從未使用過$resource

http://codepen.io/anon/pen/zrqbxj?editors=101

+0

請求後立即更改/編輯/訪問獲取請求中包含的數據的最佳方式是什麼?使用$ http? –

+0

您可以在有'返回數據'聲明的塊中更改/編輯/訪問。因爲它是傳入數據實際可用的地方。 resourceGet.query(function(data){$ scope.a = data},function(error){});應該工作。 – chaoticmind