[英]Fetching Array of Data from Backend with Angular 9
我需要一點關於 Angular (9) 的幫助。 我執行 GET 請求以從后端獲取用戶列表:
getUsers() {
return this.http.get<User[]>(`${this._constant.baseAppUrl}/users/all`, )
.pipe(map(user => {
return user;
}));
}
我的目標是獲取用戶類型為 Model 的對象數組。 相反,我得到一個 object。
我不明白為什么。 我的 IDE 還顯示,用戶變量是用戶 [],但在瀏覽器中用戶的類型是“對象”。
那么我怎樣才能得到一個數組呢?
編輯:這是來自后端的答案:
{
"5ea04cfbcd595b393d78acbb": {
"isAdmin": true,
"role": "User",
"status": "cEmail",
"_id": "5ea04cfbcd595b393d78acbb",
"name": "Test",
"password": "$2b$10$re0gqblgXsfYus1mYA3yQ.Oiz4x81c3M2uxfE4tG6V7tNW1JMubXi",
"email": "dr@rootix.de",
"__v": 0
},
"5ea1f308fc8909618668384e": {
"isAdmin": true,
"role": "User",
"status": "cEmail",
"_id": "5ea1f308fc8909618668384e",
"name": "Mathias Braun",
"password": "$2b$10$zpQezfiG4xNkwOTgV4CLIeYU4MITVfL2VhlLC3rqCbjBGl5TIpavG",
"email": "mb@rootix.de",
"__v": 0
}
}
后端沒有根據您提供的 JSON 返回數組。 但是您可以使用以下方式將 object 轉換為 Angular 端的 Array。
修改你的 Api 調用 function
getUsers():Observable<User[]> {
return this.http.get<User[]>(`${this._constant.baseAppUrl}/users/all`, )
.pipe(map(response=> {
if(response){
return Object.values(response); //This will return the array of object values.
}
return []; // If response is null return empty array for safety.
}));
}
現在您的 getUsers() function 將包含用戶 object 的數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.