如何修复“() => AbstractControl[]”类型的参数不可分配给 'array[]' 类型的参数?
How to fix Argument of type '() => AbstractControl[]' is not assignable to parameter of type 'array[]'?
我选择对我的表单使用响应式表单,我有一个复选框列表要检查,我正在尝试使用 FormArray
来执行此操作,但是当我在我的函数中调用我的函数时Ng for ,我收到了这个错误。是否可以更改 AbstractControl
类型或我是否必须修改数组的参数?
HTML
<tr class="list-group" style="list-style-type: none;" [formGroupName]="i" *ngFor="let engin of getControls() | appFilter: searchText; let i = index" >
<input type="checkbox" formControlName="checked" [(ngModel)]="engin.isSelected" #fEngins name="list_engins[]" value="{{engin.identifiant}}"
(change)="isAllSelected()"/>
<td>{{engin.num_facade}}</td>
<td>{{engin.num_immatriculation_ef}}</td>
</tr>
component.ts
getControls() {
return (this.form.get('engins') as FormArray).controls;
}
试试这个
getControls(): FormArray {
return this.form.get('engins') as FormArray;
}
或者,您可以使用一些技巧将代码修改为:
get controls(): FormArray {
return this.form.get('engins') as FormArray;
}
和用法:
*ngFor="let engin of controls.control"
我选择对我的表单使用响应式表单,我有一个复选框列表要检查,我正在尝试使用 FormArray
来执行此操作,但是当我在我的函数中调用我的函数时Ng for ,我收到了这个错误。是否可以更改 AbstractControl
类型或我是否必须修改数组的参数?
HTML
<tr class="list-group" style="list-style-type: none;" [formGroupName]="i" *ngFor="let engin of getControls() | appFilter: searchText; let i = index" >
<input type="checkbox" formControlName="checked" [(ngModel)]="engin.isSelected" #fEngins name="list_engins[]" value="{{engin.identifiant}}"
(change)="isAllSelected()"/>
<td>{{engin.num_facade}}</td>
<td>{{engin.num_immatriculation_ef}}</td>
</tr>
component.ts
getControls() {
return (this.form.get('engins') as FormArray).controls;
}
试试这个
getControls(): FormArray {
return this.form.get('engins') as FormArray;
}
或者,您可以使用一些技巧将代码修改为:
get controls(): FormArray {
return this.form.get('engins') as FormArray;
}
和用法:
*ngFor="let engin of controls.control"