Hola Antônio,
Para entender como funciona isso, você precisa entender como funcionam os parâmetros do transform.
Quando se gera um Pipe, o transforme aparecerá assim:
transform(value: any, args?: any): any {
return value;
}
Ele recebe dois parâmetros:
- O primeiro chamado de value é o valor que será formatado nesse Pipe.
- O segundo parâmetro, o args é qualquer tipo de argumento que seja necessário ser passado para o Pipe. Ele também vem juntamente com o Operador Elvis (?) indicando que é um argumento que pode não existir.
Vamos supor que criamos um Pipe para reverter uma String:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'reverseString'
})
export class ReversePipe implements PipeTransform {
transform(value: any, args?: any): any {
return value.split("").reverse().join("");
}
}
No HTML usaríamos assim:
<p>{{ minhaString | reverseString }} </p>
Significa que o minhaString foi passado como o primeiro parâmetro para a função transform.
Quando se utiliza, como no seu caso, em um repetidor:
*ngFor="let foto of fotos | filtroPorTitulo: textoProcurado.value"
Significa que o *ngFor vai funcionar normalmente, e que a cada linha encontrada no Array, ele irá aplicar o filtroPorTitulo.
O primeiro argumento é o que virá antes do |, ou seja, foto.
O segundo parâmetro por sua vez é o textoProcurado.value.
Espero ter ajudado \\//_