2017-03-10 6 views

답변

6

DEMO

다른 필드로 필터링하려면 그냥 파이프에 추가 :

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

@Pipe({ 
    name: 'searchFilter' 
}) 
export class SearchFilter implements PipeTransform { 
    transform(items: any[], criteria: any): any { 

     return items.filter(item =>{ 
      for (let key in item) { 
      if((""+item[key]).toLocaleLowerCase().includes(criteria.toLocaleLowerCase())){ 
       return true; 
      } 
      } 
      return false; 
     }); 
    } 
} 

    @Component({ 
     selector: 'sites-component', 
     template: ` 
     <input #search (keyup)="0"> 
     <ul> 
      <li *ngFor="let site of (sites | searchFilter: search.value)">(...)</li> 
     </ul> 
     ` 
    }) 
    export class SitesComponent{ 
     sites : Array; 
    } 

하지 말자는 모듈에 파이프를 선언하는 것을 잊지.

+0

이 파이프는 "name"필터 만 허용하지만 주소 또는 contact_no 등으로 필터를 허용하고 싶다고 생각합니다. –

+0

@VedTest ok wait –

+0

@VedTest 업데이트를 참조하십시오. –

관련 문제