【发布时间】:2018-08-23 13:37:49
【问题描述】:
我能够使用管道在输入字段上实现过滤器。但我无法使用复选框过滤器这样做。
以下是我的输入过滤器代码。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(users: any, searchTerm: any): any {
// check if search term is undefined
if (searchTerm === undefined) {
return users;
}
// return updated users array
return users.filter(function(user) {
return user.name.toLowerCase().includes(searchTerm.toLowerCase());
});
}
}
用户组件.html
<input type="text" [(ngModel)]="searchTerm">
<table>
<tr *ngFor="let user of users | filter: searchTerm">
<td>{{user.name}}</td>
<td>{{user.type}}</td>
</tr>
</table>
现在对于type,我想过滤复选框选择。
<tr>
<td *ngFor="let role of roles">
<label>{{role.type}}</label>
<input type="checkbox">
</td>
</tr>
在输入字段中,我可以使用[(ngModel)] 获取值,但在复选框中,我无法这样做。
请让我知道如何使用复选框选择来实现。
谢谢
【问题讨论】:
-
您的选择过滤器应该如何工作?如果单击其中一个复选框,您期望会发生什么?
-
@DiabolicWords 我有用户名和类型的列表。我想在选中复选框时使用
student或admin过滤列表。student和admin有 2 个不同的复选框