簡體   English   中英

使用 Angular 從后端獲取數據數組 9

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM