2017-11-09 5 views
0

테이블 검색 막대에 파이프를 사용하고 있습니다. 내가 app.module.ts의 선언에 필터를 추가 한사용자 정의 필터로 인해 각도 테스트가 실패했습니다.

 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> 

: 나는 다음과 같은 오류를 얻고있다.

앱 모듈에서
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

declarations 배열에 FilterPipe 클래스를 포함

여기 내 사용자 정의 필터입니다.

// App.module.ts 
@NgModule({ 
    declarations: [ 
    ..., 
    FilterPipe // This i what you are missing. 
    ], 
... 
export class AppModule { 
    ... 
} 

단위 테스트의 경우이 값은 TestBed에서 선언해야합니다. 좋아요,

... 

    TestBed.configureTestingModule({ 
     declarations: [ FilterPipe ], // Declare your filter here 
       ... 
    }); 

...