Как передать функцию как 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
  }
}

Так что я мог бы использовать его в нескольких местах с различными функциями фильтра.

Как мне пройти функцию фильтра?

1 ответ

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

Некоторое время назад было изменено, что дополнительные параметры канала передаются отдельным параметрам, а не как один параметр в виде массива.

Другие вопросы по тегам