如何在Typescript中获取FormControl的名称

时间:2019-02-06 15:36:43

标签: angular typescript form-control

我有两个带有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();

1 个答案:

答案 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并获取其名称