由于自定义过滤器,角度测试失败

时间:2017-11-09 02:32:01

标签: angular angular2-routing

我在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;}
   });

  }

}

1 个答案:

答案 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
              ...
    });

...