【发布时间】:2020-01-22 20:19:15
【问题描述】:
我希望 Angular 应用程序从下拉列表中过滤数据,产品列表与产品编号相关联。下面是 JSON 结构。
component.ts
productlistArray = [{
number: "1",
productlist: [
{ name: "product_1_0" },
{ name: "product_1_1" }
]
}, {
number: "2",
productlist: [
{ name: "product_2_0" },
{ name: "product_2_1" }
]
}];
onclickx() {
this.consoleMessages += "called this function";
}
我有一个输入框(按产品搜索)。当我输入产品编号时,它必须仅列出产品编号下的产品。
component.html
<td>
<div class="form-group">
<input type="text" class="form-control" placeholder="Search By Product No" style="width:300px" [(ngModel)]="searchTerm"/>
</div>
<div class="form-group">
<mat-select (selectionChange)="onclickx($event.value)">
<mat-option *ngFor="let product of productlistArray" [value]="product.number">
{{product.productlist}}
</mat-option>
</mat-select>
</div>
</td>
pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name:"ProductFilter",
pure:true
})
export class ProductFilter implements PipeTransform {
transform(data: any[], searchTerm: string): any[] {
return data.filter(productlistArray =>(productlistArray.number == searchTerm));
}
}
【问题讨论】:
-
您的代码有什么问题?
-
你的烟斗在哪里使用?
-
请阅读:angular.io/guide/pipes#appendix-no-filterpipe-or-orderbypipe 所以首先,将逻辑移到组件中 :)
标签: javascript html json angular