Angular2:如何将.map()添加到Observable API对象?

时间:2018-02-23 09:00:53

标签: angular

我想在我的API响应中添加id(在客户端)。我正在使用类似的东西:

getMhpById(mhpId: number): Observable<MhpDto> {
    var result: Observable<MhpDto> = this.http.get<MhpDto>(
        `${this.apiBaseUrl}csbins/accounting/mhp/${mhpId}`);
    return result;
}

编辑:

这是我的Dto:

export class MbRiskDto {
  id: string;    //API RESPONSE DOES NOT HAVE THIS id FIELD.
  hesNo: number;
  finKod: string;
  risKod: number;
  unvan: string; 
}

这是我的API响应:

[
  {
    "hesNo": "103001234567890",
    "finKod": "FD",
    "risKod": "123",
    "unvan": "TEST INC."
  },
  {
    "hesNo": "103000091287348",
    "finKod": "OD",
    "risKod": "ATS",
    "unvan": "FALCON INC."
  }
]

此服务从api获取列表并将其作为Dto返回。我还想为我的返回对象添加id。但是我的Api中没有id字段。我知道我会使用.map(),但无法找到如何使用它。谢谢你的回复。

2 个答案:

答案 0 :(得分:0)

getMhpById(mhpId: number): Observable<MhpDto> {
    return this.http.get<MhpDto>(`${this.apiBaseUrl}csbins/accounting/mhp/${mhpId}`)
        .do(dto => dto.id = mhpId);
}

答案 1 :(得分:0)

我的工作方式如下。谢谢你的提示

getGlList2(): Observable<MbRiskDto[]> {
    var result: Observable<MbRiskDto[]> = this.http.get<MbRiskDto[]>(
        'restfull_link').do(x => x.map(i => i.id = _.uuid()));
    return result;
}