嗨,我正在尝试使用* ngFor显示三个下拉列表,以便使用相同的用户列表。但是在每个下拉列表中,我都使用过滤器在每个下拉列表中显示特定类型的用户。
在我看来,我正在使用* ngFor循环显示三个下拉菜单。 比起使用筛选器,我正在筛选某些结果
<table>
<tr>
<td>
<md-select name="aId" [ngModel]="rout?.aId" (ngModelChange)="rout.aId=$event" (change)="changedept(rout.aId)">
<md-option *ngFor="let user of users | userFilter: qUsers y" [value]="user._id">{{user.username}}</md-option>
</md-select>
</td>
</tr>
</table>
check(doc){
for(var i=0;i<3;i++){
this.qUsers='';
if(i==0){
this.qUsers='Dev';
}
if(i==1){
this.qUsers='Prod';
}
if(i==2){
this.qUsers='Eng';
}
@Pipe({ name: 'userFilter' ,
pure: false
})
export class UserFilterPipe implements PipeTransform {
transform(users: IUser[], searchTerm: string) : IUser[] {
if(!users || !searchTerm) {
return users
}
return users.filter(user =>user.department.deptname.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 )
}
}
代码工作正常。它也在过滤。但是,问题出在每个下拉列表中,它显示的过滤结果基于上次使用的qUsers为“ Eng”的结果 请让我知道如何使用Dev,Prod和Eng过滤显示每个下拉列表。 谢谢