2014-07-13 236 views
0

我嘗試使用許多有關該答案的答案,但它們無效。AngularJS查詢適用於http,但不適用於資源

我正在使用api來獲取json數據與AngularJS。

我可以用$ http獲取數據並將其綁定到前端。但我無法獲得與$資源相同的數據。

當我試着使用ngResource($資源)得到的數據,它給出的錯誤這樣的:

錯誤:[$資源:badcfg]錯誤的資源配置。預計響應包含一個數組,但有一個對象

例如,我用這個項目,你可以從這裏檢查項目:https://github.com/okproject/AngularGetPost

你能幫助我嗎?

結果數據,如:

{ 
geonames: [ 
{ 
continent: "EU", 
capital: "Andorra la Vella", 
languages: "ca", 
geonameId: 3041565, 
south: 42.42849259876837, 
isoAlpha3: "AND", 
north: 42.65604389629997, 
fipsCode: "AN", 
population: "84000", 
east: 1.7865427778319827, 
isoNumeric: "020", 
areaInSqKm: "468.0", 
countryCode: "AD", 
west: 1.4071867141112762, 
countryName: "Andorra", 
continentName: "Europe", 
currencyCode: "EUR" 
}, 
{ 
continent: "AS", 
capital: "Abu Dhabi", 
languages: "ar-AE,fa,en,hi,ur", 
geonameId: 290557, 
south: 22.633329391479492, 
isoAlpha3: "ARE", 
north: 26.08415985107422, 
fipsCode: "AE", 
population: "4975593", 
east: 56.38166046142578, 
isoNumeric: "784", 
areaInSqKm: "82880.0", 
countryCode: "AE", 
west: 51.58332824707031, 
countryName: "United Arab Emirates", 
continentName: "Asia", 
currencyCode: "AED" 
} 
] 
} 

回答

0

嘗試,並得到了它的工作,事情是你正在被返回的對象調用,而不是一個數組:

{"geonames":[{"continent":"EU","capital":"Andorra la Vella"," 

我得到它的工作通過更改資源參數(isArray:false)

var resource = $resource('http://api.geonames.org/countryInfoJSON?username=okproject', {}, { 'query': { method: 'GET',isArray: false}}); 

順便說一句,我改變了以及用戶名爲「okp roject「其餘呼叫的默認帳戶也失敗了。

快照結果:

enter image description here

在你的控制器,你將不得不更新GetEvent回調

$scope.callWithResource=function() { 
    GeoService.getEvent().then(function (response) {    
     $scope.countries = response.geonames; 
    }); 
}; 
+0

它是有趣。問題是,當我使用這個資源用GET並一起發佈行動,它不起作用。但是,當我定義資源只是爲了得到你的例子,它的工作原理。你知道嗎,當我們使用post和get方法時,發生了什麼問題? – Ras

+0

剛試過var resource = $ resource('http://api.geonames.org/countryInfoJSON?username=okproject',{'post':{method:'POST'}},{'query':{method:' GET',isArray:false}});它仍然有效,也許我錯過了一些東西。 – Braulio

+0

Ouw我找到了它。總結一下,我必須在URL之後移除花括號。如果我使用它,它不起作用。檢查URL後的花括號。 var resource = $ resource('http://api.geonames.org/countryInfoJSON?username=okproject',{},{'post':{method:'POST'}},{'query':{method:' GET',isArray:false}}); – Ras

相關問題