gpt4 book ai didi

angular - 如何在 FormArray 中添加 Angular Material 自动完成功能

转载 作者:行者123 更新时间:2023-12-02 16:00:28 24 4
gpt4 key购买 nike

我正在使用 Angular 6。我的表单有一个 formArray,我可以通过单击按钮向其中添加项目。我的表格看起来像

private initForm() {
this.orderForm = new FormGroup({
'orderItems': this.orderItems,
'customerContact': new FormControl(null),
'totalAmount': new FormControl(null)
});
}

onAddItem() {
(<FormArray>this.orderForm.get('orderItems')).push(
new FormGroup({
'itemName': new FormControl(null, Validators.required),
'itemService': new FormControl(null, Validators.required),
'itemPrice': new FormControl(null)
})
);
}

HTML代码

<tbody formArrayName="orderItems">
<tr *ngFor="let orderItem of getControls(); let i = index" [formGroupName]="i">
<td>
<input type="text" formControlName="itemName" class="form-control" [matAutocomplete]="autoName">
<mat-autocomplete #autoName="matAutocomplete">
<mat-option *ngFor="let option of filteredOrderItems | async" [value]="option">
{{option}}
</mat-option>
</mat-autocomplete>
</td>
<td>
<input type="text" formControlName="itemService" class="form-control" [matAutocomplete]="autoService">
<mat-autocomplete #autoService="matAutocomplete">
<mat-option *ngFor="let option of filteredOrderServices | async" [value]="option">
{{option}}
</mat-option>
</mat-autocomplete>
</td>
<td>
<input class="form-control" type="text" formControlName="itemPrice" (keyup)="findTotal()">
<!-- </mat-form-field> -->
</td>
<td><button type="button" class="btn btn-danger" (click)="onDeleteIngredient(i)">Delete</button></td>
</tr>
</tbody>

字段 itemNameitemService 上的自动完成功能不起作用。我无法对这些字段应用过滤器。即使我能够通过更改表单的某些功能来实现这一点,我也愿意接受建议。这是应用程序的部分Stackblitz

最佳答案

您需要将 FormArray 内的每个 control 与其自己的 filteredOrderItems 数组相关联。我回答过类似的问题here ,请阅读答案详情并查看stackblitz繁殖。

请随意询问。谢谢

关于angular - 如何在 FormArray 中添加 Angular Material 自动完成功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51901852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com