Forms 如何在Angular 4中获取模板驱动表单中的控件类型

Forms 如何在Angular 4中获取模板驱动表单中的控件类型,forms,angular,controls,Forms,Angular,Controls,我有一个角4分量的形式。字段是动态生成的,即使用ngFor生成输入。输入类型不同,例如复选框、文本 在ts代码中,我如何知道输入控件的类型 HTML 不,因为表单控件不知道它使用哪个输入。它与ControlValueAccess进行通信,后者隐藏了此信息。您是否找到了执行此操作的方法?我最终将输入绑定到一个对象数组,如下图所示,this.easyForm.valueChanges.takeWhile(()=>this.alive)。debounceTime(5000)。distinctUnti

我有一个角4分量的形式。字段是动态生成的,即使用ngFor生成输入。输入类型不同,例如复选框、文本

在ts代码中,我如何知道输入控件的类型

HTML



不,因为表单控件不知道它使用哪个输入。它与ControlValueAccess进行通信,后者隐藏了此信息。您是否找到了执行此操作的方法?我最终将输入绑定到一个对象数组,如下图所示,
this.easyForm.valueChanges.takeWhile(()=>this.alive)。debounceTime(5000)。distinctUntilChanged().subscribe(数据=>{this.doSave(数据);},错误=>this.setErrorMessage(错误))
<form *ngIf="active" #easyForm="ngForm" (ngSubmit)="onSubmit()">
  <div *ngFor="let i in items">
    <input type="text" name="text-{{item.id}}" [(ngModel)]="item.text">
    <input type="checkbox" name="checkbox-{{item.id}} (ngModel)]="item.checked">
  </div>
</form>
@ViewChild('easyForm') set content(easyForm: NgForm) {
this.easyForm = easyForm;
if (this.easyForm) {
  const keys = Object.keys(this.easyForm.controls);
  foreach(let key in keys) {
     this.easyForm.controls[key] <---- am i able to get the type of the control here?
  }
}