基本上,您可以編寫(xiě)一個(gè)管道,然后在*ngFor
指令。
在你的組成部分中:
filterargs = {title: 'hello'};items = [{title: 'hello world'}, {title: 'hello kitty'}, {title: 'foo bar'}];
在模板中,可以將字符串、數(shù)字或?qū)ο髠鬟f給管道以用于篩選:
<li *ngFor="let item of items | myfilter:filterargs">
在你的煙斗里:
import { Pipe, PipeTransform } from '@angular/core';@Pipe({
name: 'myfilter',
pure: false})export class MyFilterPipe implements PipeTransform {
transform(items: any[], filter: Object): any {
if (!items || !filter) {
return items;
}
// filter items array, items which match and return true will be
// kept, false will be filtered out
return items.filter(item => item.title.indexOf(filter.title) !== -1);
}}
記得把你的煙斗登記在app.module.ts
;您不再需要在您的@Component
import { MyFilterPipe } from './shared/pipes/my-filter.pipe';@NgModule({
imports: [
..
],
declarations: [
MyFilterPipe,
],
providers: [
..
],
bootstrap: [AppComponent]})export class AppModule { }
這是一個(gè)柱塞它演示了使用自定義過(guò)濾管和內(nèi)置片管來(lái)限制結(jié)果。
請(qǐng)注意(正如幾位評(píng)論員所指出的)有一個(gè)原因為什么沒(méi)有內(nèi)置的過(guò)濾管道的角度。