【发布时间】:2019-03-16 09:45:04
【问题描述】:
在this 帖子旁边我可以发布这个结果 ["1", "2", "3"] 但我还有另一个问题。
当我选择产品时,在视图中显示 id、1、2 和 3,而不是产品名称。比如image
我改变函数updateForm()如下:
products: Products[] = [];
updateForm(ev: any, idd: any, componentid: any) {
if (ev.isUserInput) {
if (componentid === 'products_name') {
this.prodId = idd;
for (let i = 0; i < this.products.length; i++) {
if (this.products[i].products_id=== idd) {
console.log(this.products[i].products_name) //in this part I can see product name
this.myForm.controls.products_id.setValue(this.products[i].products_name)
}
}
} else {
console.log('error');
}
}
}
而我的html代码是这样的:
<div class="row">
<div class="input-field col s10">
<div class="form-group">
<div formArrayName="products_id">
<div *ngFor="let p of myForm.get('products_id').value; let i = index">
<input formControlName="{{i}}" id="products_id" type="text" aria-label="Number" matInput
[matAutocomplete]="auto">
<mat-autocomplete autoActiveFirstOption #auto="matAutocomplete" [displayWith]="displayWith">
<mat-option (onSelectionChange)="updateForm($event, pro.products_id, 'products_name')" *ngFor="let pro of filteredProduct | async"
[value]="pro.products_id">
{{pro.products_name}}
</mat-option>
</mat-autocomplete>
<div class="button-left">
<button *ngIf="myForm.controls.products_id.value.length > 1" type="button" class="fa" (click)="onRemoveItem(i)">-</button>
</div>
</div>
</div>
</div>
</div>
<div class="input-field col s2">
<button type="button" class="btn" (click)="onAddItem()">+</button>
</div>
</div>
有什么想法吗?如何显示products_name?
谢谢!
【问题讨论】:
-
StackBlitz 上有这个吗?
-
这是演示stackblitz.com/edit/angular-zvgf5f-gcwdf5?file=app/… 问题是:当我在+秒选择产品时,在视图中显示id_product,而不是产品名称。
-
请问您有什么想法吗?
-
我已经添加了我的答案。请检查是否有帮助。
标签: angular forms typescript autocomplete