2014-01-17 24 views
2

我具有有角資源工廠,它返回一個JSON對象和看起來像這樣:Angular.js錯誤:預期響應於包含一個陣列,但得到的對象儘管IsArray的被設置爲false

angular.module('myApp').factory('resourceProvider', function ($resource, $http) { 
return { 
Attribute: $resource('http://localhost:49980/api/Attribute/:id', 
{ id: '@id' }, { query: { method: 'GET', isArray: false } }),  
}; 
}); 

當我'查詢'這樣的資源:

resourceProvider.Attribute.query(function (data) { 
    $scope.variable = data; 
}); 

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

這看起來很奇怪,因爲我將isArray設置爲false。此外,代碼在其他PC上正常工作。所以我會非常感激,如果有人有一個錯誤可能來自哪裏的想法。

+0

您不能只將一個方法分配給Object屬性,您需要創建一個函數並將其返回。 –

+0

對不起,我想你錯過了我。我添加了代碼查詢資源 – pepper333

回答

2

問題一個錯字。數據庫身份驗證出現問題,並且出現的錯誤消息是JSON對象。所以實際上有一個JSON對象返回而不是數組。

+0

我也有這個確切的場景,但JSON對象_is是服務器錯誤的預期response_。如果可以配置'$ resource'來處理這個問題,而不會通過Angular的'$ log'服務發送錯誤,那將會很好。它特別增加了我們測試的噪聲,我們故意確認錯誤處理應該如何工作。 – BradGreens

1

問題1:你爲什麼使用angulars $ resource-service而不是$ http-service?
問題2:如果你想使用$ resource,爲什麼你想重寫$ resource的默認行爲?
Angular Docs

和IM不知道,但,你有沒有解決的

return { 
Attribute: $resource('http://localhost:49980/api/Attribute/:id', 
{ id: '@id' }, { query: { method: 'GET', isArray: false } }),  
}; 
+0

感謝您的回答。但是你必須重讀,代碼實際上沒有錯。該項目在其他電腦上正常工作。該錯誤只發生在我的電腦上(在我從顛覆中檢查出來後)。所以我的問題是,如果有人有線索問題可能來自哪裏。 – pepper333

相關問題