错误错误:找不到类型为“对象”的其他支持对象“ [对象对象]”。 NgFor仅支持绑定到Iterables Angular 9

时间:2020-08-01 13:30:20

标签: json angular observable angular9

大家好,我有此错误ERROR错误:找不到类型为'object'的其他支持对象'[object Object]'。 NgFor仅支持绑定到Iterables

我尝试使用.json,但无法在9号角工作

我的组件.html

  <div class="form-group">
                <label for="">Ville</label>
                <select class="form-control" #hh
                    (change)="getidregion(hh.value)">
                    <option></option>
                    <option *ngFor="let ville of dropDownList"
                        [value]="ville.id">
                        {{ville.nomVille}}
                    </option>

                </select>

            </div>

我的组件。TS:

dropDownList: [];

  responsable = {

    id: 0,
    nomResponsable: '',
    prenomResponsable: '',
    emailResponsable: '',
    mdpResponsable: '',
    img: '',
    rib: '',
    dtn: '',
    region: 0,
    ville: 0,
  };

    methodAPIToGetVilles() {
        this.res.getville()
          .subscribe((s: any) => {
            this.dropDownList = s;
    
          });
      }
    
      //methode to get the value off the idville in the option
      getidville(id: any): void {
        this.responsable.ville = id;
    
      }
    
      curUser: any = this.responsable[0];

我的API数据:

"@context": "/api/contexts/Ville",
    "@id": "/api/villes",
    "@type": "hydra:Collection",
    "hydra:member": [
        {
            "@id": "/api/villes/6",
            "@type": "Ville",
            "nomVille": "Davidboeuf"
        },
        {
            "@id": "/api/villes/7",
            "@type": "Ville",
            "nomVille": "Benoitboeuf"
        }];

2 个答案:

答案 0 :(得分:1)

我想您正在尝试执行以下操作:

<div *ngFor="let item of object | keyvalue">
  {{item.key}}:{{item.value}}
</div>

此问题在这里也得到了很好的回答:

Iterate over object in Angular

How to loop over object properties with ngFor in Angular

答案 1 :(得分:0)

如果您使用的是*ngFor,则它仅支持array or iterables类型的数据。

在您的方案中,变量 dropDownList 中的数据是object类型的,或者可以为null |未定义。因此,发生此错误。在使用数据之前先对其进行控制台。