ngFor netsted массив с объектами в опции выбора mat

У меня есть поле матовой формы с возможностью выбора

где arrTmp =

      [
    [{
        "name": "name1",
        "id": "1"
    }],

    [{
        "name": "name2",
        "id": "2"
    }, {
        "name": "name3",
        "id": "2"
    }]

]

в результате внутри поля формы мата у меня есть

      [object Object]
[object Object],[object Object] 

как я могу нормально отображать arr.name?

2 ответа

Решение

Вам нужно использовать один дополнительный цикл for для вложенного массива, см. Приведенный ниже код

          <mat-form-field appearance="outline">
          <mat-label>TestMat</mat-label>
          <mat-select placeholder="TestMat"  [formControl]="testControl">
               <ng-container *ngFor="let arr of arrTmp">
                <mat-option *ngFor="let item of arr" [value]="item">
                {{item.name}}
              </mat-option>  
               </ng-container> 
            </mat-select>   
        </mat-form-field>

Вы можете добавить такой элемент, как span, добавить его в цикл ngFor к первому массиву, а затем использовать текущий ngFor для работы с вложенным массивом.

Это означало бы сделать что-то вроде:

      <mat-form-field appearance="outline">
  <mat-label>TestMat</mat-label>
  <mat-select placeholder="TestMat"  [formControl]="testControl"> 
      <span *ngFor="let mainArr of arrTmp">
        <mat-option *ngFor="let arr of mainArr" [value]="arr">
       {{arr.name}}
        </mat-option>           
      </span>
    </mat-select>   
</mat-form-field>
Другие вопросы по тегам