我想搜索Json并获得与用户输入相同的值。 我不知道为什么我的代码无效。所以例如用户搜索汽车。如果汽车在Json。它应该在页面中显示单词car。 这是我的代码:
管:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], searchText: string): any[] {
if(!items) return [];
if(!searchText) return items;
searchText = searchText.toLowerCase();
return items.filter( it => {
return it.toString().toLowerCase().includes(searchText);
});
} }
HTML:
<li *ngFor="let char of characters | filter : searchText" >
{{ searchText}}
{{char.name}}
{{char.age}}
</li>
</ul>
组件:
export class SearchComponent {
characters: any[] = [
{
"name": "audi",
"age": 1999
},
{
"name": "toyota",
"age": 2000
}
}
答案 0 :(得分:2)
你的烟斗应该是这样的
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], searchText: string): any[] {
if(!items) return [];
if(!searchText) return items;
searchText = searchText.toLowerCase();
return items.filter( it => {
return it.name.toString().toLowerCase().includes(searchText);
});
答案 1 :(得分:0)
我认为it.toString()返回类似于:[object Object]
的内容尝试JSON.stringify(it).toLowerCase()。includes(searchText);