component.html:
<input
type="text"
[(ngModel)]="searchText"
placeholder="search your products here"
name="searchText">
<table class="table table-bordered">
<thead>
<tr>
<th>Id</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let obj of product| filter: searchText">
<td>{{obj.id}}</td>
<td>{{obj.description}}</td>
</tr>
</tbody>
</table>
filter.ts:
transform(items: any, searchText: string): any[] {
if (!items || !searchText || searchText === undefined) {
return items;
}
return items.filter(items =>
items.description.toLowerCase().includes(searchText.toLowerCase));
}
控制台显示项目。说明未定义。
model.ts:
export class products{
id: number;
description: string;
}
在页面加载之前没有错误,一旦我开始在搜索框中输入内容,就会显示错误。错误显示在下面的代码中。
<input
type="text"
[(ngModel)]="searchText"
placeholder="search your issues here"
name="searchText">
答案 0 :(得分:2)
您不是在这里致电searchText.toLowerCase
。您需要调用它。另外,您要将输入和每个项目命名为items
。可能是另一个问题。
将您的transform
实现更改为:
transform(items: any, searchText: string): any[] {
if (!items || !searchText || searchText === undefined) {
return items;
}
return items.filter(item =>
item.description.toLowerCase().includes(searchText.toLowerCase()));
}
当然,除非是您的OP中的错字。
这里是Sample StackBlitz供您参考。