📅  最后修改于: 2023-12-03 15:03:10.602000             🧑  作者: Mango
在我们的应用程序中,搜索功能是必不可少的。使用Angular2,我们可以很容易地创建一个搜索过滤器,方便快捷地筛选出数据。
创建一个名为“filter-by”(后面我们将把它作为指令使用)的文件,文件名和文件夹名可以自己决定。在里面创建一个名为“filter-by.pipe.ts”的文件,在这个文件中编写以下代码:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filterBy'
})
export class FilterByPipe implements PipeTransform {
transform(collection: any[], property: string, value: string): any[] {
if(!collection) {
return [];
}
if(!property || !value) {
return collection;
}
return collection.filter(item => item[property].toLowerCase().indexOf(value.toLowerCase()) !== -1);
}
}
代码解释:
在我们的HTML模板中,我们可以很容易地使用我们创建的过滤器。根据需要,我们可以选择把输入框绑定到一个变量或者管道符号后面。
<input [(ngModel)]="searchText"/>
<ul>
<li *ngFor="let item of items | filterBy: 'name': searchText">
{{ item.name }}
</li>
</ul>
代码解释:
在我们的示例中,我们创建了一个名为“filterBy”的过滤器,该过滤器可以帮助我们轻松地进行数据筛选。无论我们是在使用输入框和指令来进行搜索,还是在使用其他方法,我们都可以很容易地使用这种方法来进行数据过滤。