I have a list of strings that I want to iterate through, but I want to be able to filter them using a search term. Like this:
This is the cleanest solution I've been able to produce.
@Pipe({
name: 'search'
})
export class SearchPipe {
transform(value, searchTerm) {
let result = ...
if(result.length === 0) {
return [undefined];
}
return result;
}
}
By returning [undefined]
, checks in the DOM are much cleaner and easier to read.
<ng-container *ngFor="let item of list | search: searchTerm">
<div *ngIf="!item">"No matches"</div>
<div *ngIf="item">{{ item }}</div>
</ng-container>