2017-05-24 3 views
0

파이프을 사용하여 목록을 필터링하려고합니다. 예상치 못한 결과가있었습니다. input 파이프로 보내는 방법을 모르겠습니다. I "는이"그것은 단지 당신은 값 문자열 (입력 텍스트의 값을 전달하는 것을 잊었다파이프를 사용하여 각도 2의 목록을 필터링하는 방법은 무엇입니까?

import { Pipe, PipeTransform } from '@angular/core'; 


@Pipe({ name: 'listpipe' }) 
export class ListPipe implements PipeTransform { 
    transform(items: any[], filter: string) { 
    if (!items || !filter) { 
      return items; 
     } 
    return items.filter(item => item.name.indexOf(filter) !== -1); 
    } 
} 

답변

2

목록에 "ABC"를 표시해야 입력 할 때 여기

내 코드

https://plnkr.co/edit/WFMo8Az7BSJaRJAVVxyE?p=preview 입니다)를 필터에 추가하십시오.

그래서 구성 요소 클래스에서, 그것은해야한다 :

<li *ngFor="let l of v | listpipe:values">{{l.name}}</li> 

대신 : https://angular.io/docs/ts/latest/guide/pipes.html#parameterizing-a-pipe

: 당신은 공식 문서에서 파이프 매개 변수의 자세한 정보를 찾을 수 있습니다
<li *ngFor="let l of v | listpipe">{{l.name}}</li>