I have the following filter pipe:
import { Pipe, PipeTransform } from '@angular/core';
import { Filterable } from './models/filterable.model';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(value: Filterable[], ...args: string[]): unknown {
console.log("Filter:", args[0]);
if(value && args[0] && args[0].length>2){
return value.filter(item => item.name.toLowerCase().includes(args[0].toLowerCase()));
}
return value;
}
}
The pipe is used in the html like this:
<app-card *ngFor="let p of projects | async | filter:filterString" headline="{{p.name}}" subHeadline="{{p.leader}}" content="{{p.description}}"></app-card>
And filterString is bound to ngModel like this:
<input matInput [(ngModel)]="filterString" placeholder="filter">
But the console log is never triggered when I type something into the input. How can I trigger the pipe filtering on keyup/change of the ngModel?