问题描述
我正在使用 branch-name = "!git rev-parse --abbrev-ref HEAD"
pub = "!f(){ git push -u origin HEAD^:$(git branch-name); };f"
进行匿名 formArray 输入(自动完成)以查找项目。
错误信息是 autocomplete
你能帮我改进代码吗?
谢谢。
ERROR Error: Cannot find control with path: 'orderItems -> 0 -> search'
<form [formGroup]="orderForm">
<div formArrayName="orderItems">
<div *ngFor="let orderItem of getControls(); let i = index" [formGroupName]='i'>
<p-autoComplete
formControlName="search"
(onSelect)="onSelect($event)"
[suggestions]="list">
</p-autoComplete>
</div>
</div>
<p-button (click)="onAdd()"> add </p-button>
</form>
解决方法
最初使用空数组设置表单
buildForm() {
this.orderForm = this.fb.group({
orderItems: this.fb.array([]),});
}
然后获取数组的数据并填充数组
setOrderItemArray() {
const orderItemsArray = this.orderForm.get('orderItems') as FormArray;
this.orderItemsList.forEach(item => {
orderItemsArray.push(this.buildOrderItemsForm(item))
});
}
buildOrderItemsForm(item): FormGroup {
return this.fb.group({
id: item.id,search: item.search,name: item.name
})
}
现在您在数组的每个对象中都有一个“搜索”实例,并且可以为每个对象独立使用搜索自动完成功能。