如何将函数作为arg Pipe angular2传递

How to pass function as arg Pipe angular2

我想要一个通用字段过滤器,它将过滤器函数作为参数并在 filter

中使用它
import {Injectable, Pipe, PipeTransform} from '@angular/core';

@Pipe({
  name: 'FieldsFilter'
})
@Injectable()
export class FieldsFilter implements PipeTransform {
  transform(fields: any[], args: any[]): any {
    return fields.filter(args[0]);//pass function to filter
  }
}

所以我可以在多个地方用不同的过滤功能使用它。

如何传递过滤功能?

@Pipe({
  name: 'FieldsFilter'
})
@Injectable()
export class FieldsFilter implements PipeTransform {
  transform(fields: any[], f): any {
    return fields.filter((e) => f(e));
  }
}

很久以前就改变了,附加的管道参数被传递给单独的参数,而不是作为数组形式的单个参数。