我在Table的搜索栏中使用了Pipe。我收到以下错误:
The pipe 'filter' could not be found ("
<tbody>
<tr *ngFor="l[ERROR ->]et i of tutors | filter : searchText" name="tutors_list">
<td>{{i.name}}</td>
我在app.module.ts
的声明中添加了过滤器。
这是我的自定义过滤器:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], searchText: string) {
if (searchText === undefined) return items;
return items.filter(function(i){
if( i.name.toLowerCase().includes(searchText.toLowerCase()))
{ return i;}
else if( i.department.toLowerCase().includes(searchText.toLowerCase()))
{ return i;}
else if( i.email.toLowerCase().includes(searchText.toLowerCase()))
{ return i;}
});
}
}
答案 0 :(得分:0)
在您的应用模块中,将FilterPipe
课程包含在declarations
数组中。
// App.module.ts
@NgModule({
declarations: [
...,
FilterPipe // This i what you are missing.
],
...
export class AppModule {
...
}
对于单元测试,必须在TestBed中声明。像,
...
TestBed.configureTestingModule({
declarations: [ FilterPipe ], // Declare your filter here
...
});
...