Don’t use all those ngif’s. it will cause performance issues. Filter the list in the ts file, and ngFor over the already-filtered list. When I want to change filters dynamically, I use the async pipe in the template, and a getter Observable in the ts file. Example:
get filteredList(): Observable<Array<ListItemType>> {
return observableThatEmitsDynamicallyFilteredList;
}