2017-05-06 6 views
0

내 파이프는 필터 파이프에서 데이터를 필터링 :저장 Angular2

@Pipe({ 
    name: "dataFilter" 
}) 
export class DataFilterPipe implements PipeTransform { 

    transform(array: any[], query: string): any { 
     if (query) { 
      return _.filter(array, row=>row.name.indexOf(query) > -1); 
     } 

     return array; 
    } 
} 

내 html 파일 : 나는 angular2-DataTable을 사용하고

<table class="table table-striped" [mfData]="listdata | dataFilter : filterQuery " #mf="mfDataTable" 
        [mfRowsOnPage]="rowsOnPage" [(mfSortBy)]="sortBy" [(mfSortOrder)]="sortOrder"> 

.

이 파이프를 사용하여 데이터를 필터링하고 데이터 테이블에 표시하고 있습니다. 필터링 된 데이터를 변수에 저장하여 응용 프로그램의 다른 곳에서 사용할 수 있습니다.

+0

** 파이프는 템플릿 내에서 표시된 값을 변환합니다. ** - 각 파이프의 정의입니다. 왜 그것을 저장하고 싶습니까? – Aravind

+0

@Aravind 데이터 테이블에 위치 목록이 있습니다. 사용자가 목록을 필터링하면 Google지도에서 마커를 사용하여 필터링 된 위치 만 보려고합니다. – mistletoe

+0

사용자는 DB에서 저장해야하는 내용 인 '목록에서 선택'을 허용해야합니다. – Aravind

답변

0

모듈에 파이프를 제공합니다 :

@NgModule({ 
    ... 
    providers: [DataFilterPipe] 
}) 
export class MyModule { 
    ... 
} 

주입 한 후 구성 요소에서 사용 : 이제 두 번 필터링을 피하기 위해 filtered 속성에 직접 데이터 테이블을 결합 할 수

export class MyComponent implements OnInit { 

    public filtered; 

    constructor(private dataFilterPipe: DataFilterPipe) { 
    } 

    ngOnInit() { 
     const unfiltered = ...; 
     const filterQuery = ...; 
     this.filtered = this.dataFilterPipe.transform(unfiltered, filterQuery); 
    } 
} 

:

지금은 신고해야하는지 궁금합니다. 다시 파이프.

+0

감사합니다. 내가 왜 이것을 생성자 내부에서 사용해야하는지 알고 싶습니다. – mistletoe

+0

생성자 내에서 사용할 필요가 없습니다. 내 편집을 참조하십시오. –