如何在 Json/array 中获得与用户输入相同的值?
How to get the same value in a Json/array as the user input?
我想搜索 Json 并获得与用户输入相同的值。
我不知道为什么我的代码不起作用。所以例如用户搜索汽车。如果汽车在 Json。它应该在页面中显示汽车一词。
这是我的代码:
管道:
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
}
}
我认为 it.toString() returns 类似于:[object Object]
试试 JSON.stringify(it).toLowerCase().includes(searchText);
你的烟斗应该是这样的
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);
});
我想搜索 Json 并获得与用户输入相同的值。 我不知道为什么我的代码不起作用。所以例如用户搜索汽车。如果汽车在 Json。它应该在页面中显示汽车一词。 这是我的代码:
管道:
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
}
}
我认为 it.toString() returns 类似于:[object Object]
试试 JSON.stringify(it).toLowerCase().includes(searchText);
你的烟斗应该是这样的
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);
});