Angular 7 Выпадающий список внутри источника данных таблицы материалов выбирает последний элемент массива

У меня есть эта группа форм внутри угловой таблицы материалов с источником данных;

<ng-container matColumnDef="fr">
    <th mat-header-cell *matHeaderCellDef> Family Rel. </th>
    <td mat-cell *matCellDef="let element">
        <mat-form-field color="warn" appearance="outline">
        <mat-label>Family Relation</mat-label>
             <mat-select id="family_relation" formControlName="family_relation" placeholder="Family Relation">
                   <mat-option *ngFor="let familyRelation of familyRelationArray; let i = index" [value]="familyRelation.family_relation_id">
                        {{familyRelation.family_relation_type}}
                   </mat-option>
             </mat-select>
        </mat-form-field>&nbsp;
                  {{element.fr}}
    </td>
</ng-container>

Я получаю familyRelationArray из этого метода:

getFamilyRelation() {
    let status = 'Active';
    this.auth.getFamilyRelation(status).subscribe(
      (data) => {
        this.familyRelationArray = data;
      },
      (error) => {
        console.log(error);
      }
    );
  }

Для каждой строки, отображаемой в моей таблице материалов, это разные семейные отношения.

Я отображаю данные, используя следующее:

getData()
  {
    this.auth.getIndPerHousehold(this.hh_id).subscribe(
      (data)=>{
        if(data=="empty")
        {
          this.showEmpty = true;
        }
        else
        {
          this.showEmpty = false;
          this.dataSource = new MatTableDataSource(Object.values(data));
          this.resultsLength = Object.values(data).length;
          this.dataSource.paginator = this.paginator;
          this.dataSource.sort = this.sort;
          // this.formGroup.controls['family_relation'].setValue(Object.values(data[0]['frid']));
          Object.values(data).forEach(element => {
            //console.log(element.frid)
            this.formGroup.get('family_relation').setValue(element.frid);
          });
        }
      },
      (error)=>
      {
        console.log(error);
      }
    );
  }

Я использую следующее, чтобы выбрать корреспондентское отношение каждого человека в семье:

Object.values(data).forEach(element => {
    //console.log(element.frid)
    this.formGroup.get('family_relation').setValue(element.frid);
});

В таблице отображаются обычные данные, но в раскрывающихся списках выбирается последнее импортированное значение element.frid.

Таким образом, последняя строка является дочерней, во всех раскрывающихся списках выбирается child.

введите описание изображения здесь

Обратите внимание, что frid то же самое, что и family_relation_id.

Как запустить цикл внутри результата подписки на источник данных, чтобы в раскрывающемся списке было выбрано точное значение каждой строки?


person alim1990    schedule 03.12.2018    source источник