当只有一个对象要接收时如何在Angular 8中获取数据

问题描述 投票:0回答:2

我得到的错误:

core.js:6260错误错误:找不到类型为'object'的其他支持对象'[object Object]'。 NgFor仅支持绑定到Iterables,例如数组。

在NgForOf.ngDoCheck(common.js:4406)在callHook(core.js:4762)在callHooks(core.js:4722)在executeCheckHooks(core.js:4642)在refreshView(core.js:11979)在refreshComponent(core.js:13449)在refreshChildComponents(core.js:11689)在refreshView(core.js:12024)在refreshComponent(core.js:13449)在refreshChildComponents(core.js:11689)

如果我有多个对象,下面的代码将起作用。当数据如下所示时,据我了解,数组或对象出了点问题,但我无法弄清楚。因此,当我有2个对象时,我会在下拉列表中获取数据,但是当我有2个对象时,会出现上述错误。

[
{..},
{..}
]

我的数据看起来像这样:

{
"details_id": 218,
"master_code": 218,
"MstCode": null,
"start_date": "2020-02-29T00:00:00",
"end_date": "2020-02-29T00:00:00",
"canceled": "False   ",
"data_archived": null,
"last_updated_on": "2020-02-28 11:37:08",
"last_updated_by": null
}

我的http获取请求代码如下:

this.http.get(this.apiBaseUrl+"ProgramDets/"+id).toPromise().then(res => this.Details = res as TrDetails);

我的型号代码:

export class TrDetails {
    details_id: number;
    master_code: number;
    MstCode: number;
    start_date: Date;
    end_date: Date;
    canceled: string;
    data_archived: string;
    last_updated_on: Date;
    last_updated_by: string;
}

我的服务代码:

apiBaseUrl = "http://localhost:2676/api/";
Details : TrainingDetails;

GetDetails(id){
    this.http.get(this.apiBaseUrl+"ProgramDets/"+id).toPromise().then(res => 
    this.Details = res as TrDetails);
  }

我的下拉代码:

<option *ngFor="let data of service.Details" [value]="data.start_date">{{data.program_start_date}}</option>
angular api http
2个回答
0
投票

我认为您需要的是这个:

GetDetails(id){
    this.http.get(this.apiBaseUrl+"ProgramDets/"+id).toPromise().then(res => 
    this.Details = res.json() as TrDetails);
  }

0
投票

[service.Details应该是一个用于* ngFor的数组,似乎service.Details的值在这里是一个对象,因此会出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.