J'ai besoin d'obtenir le texte sélectionné dans une liste déroulante de matériaux. <mat-select>
au lieu de sa valeur :
<ng-container matColumnDef="fr">
<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" appearance="outline">
<mat-label>Family Relation</mat-label>
<mat-select #familyRelation (selectionChange)="onChange(element, i, 'hh')" 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>
Et voici ce que j'essaie de faire :
@ViewChild('familyRelation') familyRel: ElementRef;
Et sur le changement de sélection de la liste déroulante :
onChange(data, i, type) {
let c = this.familyRel.nativeElement.innerText;
console.log(c)
}
J'ai eu l'erreur suivante :
ERROR TypeError : Impossible de lire la propriété 'innerText' d'undefined à l'adresse
Et quand je retire innerText
la valeur consolée est :
indéfini
Ce dont j'ai besoin, comme vous pouvez le voir dans le stackblitz si j'ai choisi Parent
Je veux obtenir Parent
dans une variable et non 1
qui est son id
.
Veuillez noter que element
, i
y hh
en (selectionChange)=onChange(element,...)
sont utilisés plus tard dans la fonction, alors oubliez-les maintenant.