更新:02/12/2015 正如在評論中提到的,這是一個由Angular模塊修改對象的問題。如下所述,我可以使用toJSON
進行追蹤。角度承諾從JSON API返回不正確的數據
我最近遇到了一個非常難以理解的問題。我有一項服務,即通過get
請求從api獲取請求數據。在Chrome開發人員工具中查看網絡面板時,api會返回正確的結果,但它們不會顯示在角度請求的響應中。
你可以注意到內容部分缺少項目。和角碼:
角碼
function getPhotos(){
return $http.get('/photo')
.then(getPhotosComplete)
.catch(function(err){
//handle errors
});
function getPhotosComplete(res){
//Showing incorrect response here
console.log("getPhotosComplete", res);
return res.data;
}
}
從API { url: "https://dev.amazonaws.com/060a2a5f-8bb7-4ffa-aa7d-e715439271a3.jpg", archive_name: "140809", seedcount: 0, viewcount: 0, live: true, current: false, next: false, createdAt: "2015-02-10T17:48:41.505Z", updatedAt: "2015-02-12T04:11:02.239Z", content: [ "Balloon", "Apartment", "Testing", "Testing 2", "Party", "Inez" ], id: "54da44790eb10b0f00b453a1" }
在服務範圍角/ res.data { url: "https://dev.amazonaws.com/060a2a5f-8bb7-4ffa-aa7d-e715439271a3.jpg", seedcount: 0, viewcount: 0, live: true, current: false, next: false, createdAt: "2015-02-10T17:48:41.505Z", updatedAt: "2015-02-12T04:11:02.239Z", content: Array[3] 0: "Balloon", 1: "Apartment", 2: "Party" ]
如果您使用的是非縮小的Angular,則可以調試到Angular的代碼來查看Angular如何轉換您的響應。 AFAIK,Angular會嘗試將您的響應轉換爲JSON對象。也許在那裏出了問題。 – Rebornix 2015-02-12 04:35:55
你確定嗎?嘗試使用JSON.stringify進行日誌記錄,以確保它不僅僅是一個顯示工件。 'Array [3] 0:「Balloon」,1:「Apartment」,2:「Party」]看起來很可疑,因爲它甚至不是JSON – 2015-02-12 04:39:03
@JuanMendes - 我相信,它只是返回的對象安慰。我也使用batarang並登錄很多地方。 – jeffreynolte 2015-02-12 04:41:34