J'ai une liste de emplyees et que vous souhaitez faire un menu déroulant avec filtre du département prédéfiniInvoke tuyau lorsque la fonction passe comme arg tuyau angular2
Im essayant de faire un tuyau de filtre et passer une fonction comme arg il ne fonctionne que la première fois de son rendu, mais je veux invoquer le tuyau à chaque fois que l'utilisateur modifie la sélection
tuyau:
import { Pipe, PipeTransform, Injectable } from '@angular/core';
@Pipe({
name: 'filter'
})
@Injectable()
export class FilterPipe implements PipeTransform {
transform(value: Array<any>, f) {
return value.filter(x => f(x));
}
}
Composant:
constructor() {
this.filterFunc = this.filterByDepatment.bind(this);
}
//filter function
filterByDepatment(e) {
if (this.selectedDepartment > -1) {
return (e.Departments as Array<any>).find(x => x.Id === this.selectedDepartment);
} else {
return true;
}
}
Modèle:
<select [(ngModel)]="selectedDepartment">
<option value="-1">All</option>
<option value="{{d.Id}}" *ngFor="let d of departments">{{d.Name}}</option>
</select>
<div class="card" *ngFor="let emp of (employees | filter: filterFunc)">