首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Angular 9从后端获取数据数组

使用Angular 9从后端获取数据数组
EN

Stack Overflow用户
提问于 2020-04-24 05:33:17
回答 1查看 838关注 0票数 1

我需要一点关于Angular (9)的帮助。我做了一个GET请求,从后端获取用户列表:

代码语言:javascript
复制
    getUsers() {
    return this.http.get<User[]>(`${this._constant.baseAppUrl}/users/all`, )
        .pipe(map(user => {

            return user;
        }));
    }

我的目标是获得一个类型为User Model的对象数组。相反,我得到了一个对象。

我不明白为什么。我的集成开发环境还显示,user变量是User[],但在浏览器中user的类型是"object“。

那么如何才能取回一个数组呢?

编辑:这是来自后台的答案:

代码语言:javascript
复制
{
   "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
   }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 13:58:57

后端不会根据您提供的JSON返回Array。但您可以使用以下方法将对象转换为角度侧的数组。

修改您的Api调用函数

代码语言:javascript
复制
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()函数将是user对象的数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61397368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档