如何在angular2中为ngFor传递5个值的过滤器?

时间:2016-05-30 10:39:06

标签: angularjs typescript angular

如何在angular2中为两个值传递ngFor的过滤器?

这是我目前使用过滤器代码的地方:

import { Pipe } from "@angular/core";

@Pipe({
    name: 'mapFilter', 
  pure: true
})

export class MapFilter {
   transform(items, [searchTerms]) { 
      return items;
  }
}

这是我的HTML

  <tr *ngFor="let item of jobs | mapFilter: [searchTerm, county, region, type, markers]" class="animated fadeIn" (click)="viewJob(item)">

正如您所见,我试图将5个值传递到名为:searchTerm,county,region,type,marker的过滤器中。

然后我可以过滤结果。

我不确定如何将这些传递到过滤器中。所以主要是卡在mapFilter管道代码上。

2 个答案:

答案 0 :(得分:2)

您可以尝试以下方法:

<tr *ngFor="let item of jobs | mapFilter:searchTerm:county:region:type: markers"
     class="animated fadeIn" (click)="viewJob(item)">

以这种方式将它们放入管道类中:

@Pipe({
  name: 'mapFilter'
})
export class MapFilter {
  transform(items, searchTerms) { 
    let searchTerm = searchTerms[0];
    let county = searchTerms[1];
    (...)
    return items;
  }
}

答案 1 :(得分:0)

我设法让它发挥作用。看起来他们已经改变了管道。它现在需要看起来像这个变换(items,searchTerm1,searchTerm2,SearchTerm3){