首页 文章

Angular Reactive Forms:使用带有formGroupName的.controls属性

提问于
浏览
0

我可以在Angular Reactive表单中使用 myForm.controls 属性,而不是为每个实例定义一个AbstractControl吗?

NG-Book中建议使用此方法,但不使用嵌套表单和FormGroupName .

这是我的代码 .

HTML:

<form [formGroup]="myForm"
    (ngSubmit)="onSubmit(myForm.value)">
<div>
  <input type="text"
         id="nameInput"
         placeholder="Product"
         [formControl]="myForm.controls['name']">
   <div *ngIf="myForm.controls['name'].hasError('required')">Name is 
   required</div>
</div>
<div formGroupName="address">
  <input type="text"
         id="streetInput"
         placeholder="Enter Street"
         [formControl]="myForm.controls['street']">
   <div *ngIf="myForm.controls['street'].hasError('required')">Street is required</div>
</div>
<button type="submit" class="ui button">Submit</button>

JS:

export class App {
  myForm: FormGroup;

  constructor(fb: FormBuilder) {
    this.myForm = fb.group({
      'name':  ['', Validators.required],
      'address': fb.group({
        'street': ['', Validators.required],
      });
    } 
  }
}

我意识到我可以在输入上设置 formControlName="street" 然后我想我必须使用AbstractControl来确定它的验证状态 . 在我的非嵌套formGroup中,我可以使用 myForm.controls['name'].hasError('required') .

1 回答

相关问题