我有一个需要几个FormControl
和FormArray
作为输入的组件。我正在像这样从子组件访问FormControl
:
[formControl]="control"
这很好,但是我找不到用FormArray
做同样的方法。似乎没有针对它的指令。我想避免传入一堆字符串,并尽可能通过formControlName
和formArrayName
访问。有办法吗?
答案 0 :(得分:1)
更新,出现类型错误,已被jsut纠正
您可以像FormGroup一样使用FormArray,但是要小心使用“符号”,如果通常我们使用[formGroup] =“ i”,那么现在使用[formGroup] =“ group”。
只考虑什么是myFormArray.controls
<form [formGroup]="myFormArray">
<div *ngFor="let group of myFormArray.controls;let i=index" [formGroup]="group">
<input formControlName="prop1">
<div *ngIf="group.get('prop1').invalid">Prop1 Required</div>
<input formControlName="prop2"/>
<div *ngIf="group.get('prop2').invalid">Prop2 Required</div>
</div>
</form>
myFormArray=new FormArray([
new FormGroup({
prop1:new FormControl('',Validators.required),
prop2:new FormControl('',Validators.required)
})
])
如果您的formArray是控件的FormArray,请直接使用formControl
<form [formGroup]="myFormArray2">
<div *ngFor="let group of myFormArray2.controls">
<input [formControl]="group">
<div *ngIf="group.invalid">Required</div>
</div>
</form>
myFormArray2=new FormArray([
new FormControl('',Validators.required),
new FormControl('',Validators.required)
])