我有两个带有multiselect的下拉菜单。
<mat-form-field>
<mat-select [formControl]="FirstFormControl" multiple>
<mat-option (onSelectionChange)="selectA($event) *ngFor="let msj of filter?.msj" [value]=msj>{{msj}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-select [formControl]="SecondFormControl" multiple>
<mat-option (onSelectionChange)="selectB($event) *ngFor="let guide of filter?.guide" [value]=guide>{{guide}}
</mat-option>
</mat-select>
</mat-form-field>
在Typescript中,我需要知道单击哪个是FormControl的名称,因为在两种情况下我都想做不同的事情。
FirstFormControl = new FormControl();
SecondFormControl = new FormControl();
答案 0 :(得分:1)
您可以将formcontrol
名称从模板手动发送到组件方法
<mat-form-field>
<mat-select [formControl]="SecondFormControl" multiple>
<mat-option (onSelectionChange)="selectB($event, 'SecondFormControl') *ngFor="let guide of filter?.guide" [value]=guide>{{guide}}
</mat-option>
</mat-select>
</mat-form-field>
ts代码:
selectB(event, cntrlName){
console.log(cntrlName);
console.log(this.myForm.get(cntrlName).value);
}
或者,您可以观察每个表单控件的表单控件valueChanges并获取其名称