2017-05-16 2 views
1

문자열 배열을 필터링하는 필터 프로젝트를 작성하려고했습니다. 작동하지만 여전히 오류가 발생합니다. 왜 그런지 궁금해? 필터를보다 보편적으로 만들어 다른 문자열에도 사용할 수있는 방법이 있는지 물어보고 싶습니다. 여기 Angular2 : FilterPipe : 정의되지 않은 'filter'속성을 읽을 수 없습니다.

파이프입니다 :

import { Pipe, PipeTransform } from '@angular/core'; 
import {Afdelingen} from "../models"; 

@Pipe({ 
    name: 'filter' 
}) 
export class FilterPipe implements PipeTransform { 

    transform(afdeling:Afdelingen[]) { 
    return afdeling.filter(afd => afd.afdelingsNaam == 'pediatrie'); 
    } 
} 

내 HTML 그냥 테스트를 위해,하지만 여기 간다 : 당신이 볼 수 있도록

<div *ngFor="let afd of afdeling | filter"> 
    {{afd.afdelingsNaam}} 

</div> 

나는 또한 작동하고, 이미지를 추가했습니다, 아직 오류가 발생했습니다. Error

편집 : 유니버설 검색 파이프 : 당신은 당신의 파이프에서이 검사를 추가 할 수 있습니다

import { Pipe, PipeTransform } from '@angular/core'; 
import {Afdelingen} from "../models"; 

@Pipe({ 
    name: 'filter' 
}) 
export class FilterPipe implements PipeTransform { 

    transform(afdeling:Afdelingen[], value:string) { 
    if (!afdeling) 
     return afdeling; 
    return afdeling.filter(afd => afd.afdelingsNaam == value); 
    } 
} 
+0

처음 필터 파이프가 호출되면 'afdeling'은 아마 정의되지 않습니다. 파이프에'afdeling' 값이 있는지 확인해야합니다 :) – Alex

답변

3

:

transform(afdeling:Afdelingen[]) { 
    if (!afdeling) 
     return afdeling; 
    return afdeling.filter(afd => afd.afdelingsNaam == 'pediatrie'); 
} 

그래서 당신은 파괴 예외를 제거

+0

고마워요, 이걸로 해결했습니다. 나는 또한 더 보편적 인 파이프를 만들 수 있었다! –

관련 문제