首页 > 解决方案 > 如何使用订阅来映射对象

问题描述

我正在尝试将值分配给组件中的类型。当我执行 console.log 时,我的订阅正在恢复这个

this.srvice.getTasks(this.request).subscribe(heroes => console.log(heroes));



{
    "List": [
        {
            "id": 17,
            "pro": 1,
            "name": "Ram",
            "UserId": 2,
            "duedate": "2018-01-01T00:00:00",
            "status": 1,
            "active": false
        },
        {
            "id": 3,
            "pro": 1,
            "name": "My Name",
            "UserId": 1,
            "duedate": "2018-01-01T00:00:00",
            "status": 2,
            "active": false
        },
    ]
}

但是当我做我的任务时,它不起作用..我认为它需要提供直接列表,但我的对象被包裹在“列表”中。我怎样才能提取这个?我是角度新手

这就是我分配值的方式

组件类:

model: dtoModel = {
          List : []
       };

 this.taskService.getTasks(this.request).subscribe(heroes => this.model = heroes);

楷模

export interface dto {
    id: number;
    pro: number;
    name: string;
    UserId: number;
    duedate: string;
    status: number;
    active: boolean;
  }

export interface dtoModel {
    List: dto[];
}

在役

getTasks (requestSearch: TaskRequest): Observable<dto[]> {
        return this.http.post<dto[]>(this.Url, requestSearch,  httpOptions);
}

标签: angularangular2-servicesangular7subscribe

解决方案


你可以使用

this.taskService.getTasks(this.request).subscribe(heroes => this.model = heroes.List);

这将选择 List 数组。

model意志变成

model: dto[] = [];

推荐阅读