Есть ли способ получить текст выбранного значения из раскрывающегося списка вместо получения значения в реактивных формах?
Мой сценарий выглядит следующим образом:
<form [formGroup]="formGroup" formArrayName="test">
<ng-container matColumnDef="fr" formArrayName="test">
<th mat-header-cell *matHeaderCellDef> Family Rel. </th>
<td mat-cell *matCellDef="let element; let i = index;">
<div [formGroupName]="i">
<mat-form-field color="warn" >
<mat-label>Family Relation</mat-label>
<mat-select (selectionChange)="onChange(element, i)" id="family_relation" formControlName="fr" placeholder="Family Relation">
<mat-option *ngFor="let familyRelation of familyRelationArray;" [value]="familyRelation.family_relation_id">
{{familyRelation.family_relation_type}}
</mat-option>
</mat-select>
</mat-form-field>
</div>
</td>
</ng-container>
</form>
И при выборе изменения (selectionChange="onChange(element, i)")
мне нужно получить как выбранное значение, так и его текст.
onChange(data, i)
{
let group = (<FormArray>this.formGroup.get('test')).at(i).value;
let newFr = group['fr'];
console.log('Value: '+newFr);
}
Где данные - выбранная строка, а i
- индекс выбранного массива форм..
Я пытался использовать старый метод javascript:
<HTMLSelectElement>document.getElementById().text
Но он выдал ошибку:
[ts] Свойство 'text' не имеетсуществуют по типу «HTMLElement».[2339]
РЕДАКТИРОВАТЬ
Я пробовал:
@ViewChild('familyRelation') familyRelation;
А:
<mat-select #familyRelation (selectionChange)="onChange(element, i)" id="family_relation" formControlName="fr" placeholder="Family Relation">
<mat-option *ngFor="let familyRelation of familyRelationArray;" [value]="familyRelation.family_relation_id">
{{familyRelation.family_relation_type}}
</mat-option>
</mat-select>
И послеутешительно: