【发布时间】:2019-10-10 07:11:35
【问题描述】:
我有一个显示参与者列表的项目。我想做的是由提供者使用复选框实时过滤它们。
参与者:
[
{ 'name': 'test1', 'provider' : {'name': 'provider1'}}
{ 'name': 'test2', 'provider' : {'name': 'provider2'}}
{ 'name': 'test3', 'provider' : {'name': 'provider3'}}
{ 'name': 'test4', 'provider' : {'name': 'provider1'}'}
..
]
我的html模板是:
这里是显示提供者的复选框列表。我用它来过滤参与者。
<div class="form-group" *ngFor="let provider of providers">
<input type="checkbox" name="providers" value="{{ provider.name }}" [(ngModel)]="provider.checked"
(change)="displayParticipantsByProvider($event.target.value)">{{ provider.lastName }}
</div>
这是我展示参与者的方式:
<ul>
<li *ngFor="let p of participants">{{ p.name }} - {{ p.provider.name }} </li>
</ul>
而我在组件中的过滤功能是:
displayParticipantsByProvider(filterVal: any) {
if (filterVal === '0') {
this.participants = this.cathechParticipants;
} else {
this.participants = this.participants.filter((item) => item.provider.includes(filterVal));
}
}
此过滤器仅返回选中的项目。例如,如果从复选框中选择了提供者 1,它会返回我有提供者 1 的参与者。如果我从复选框中选择 provider2,它只会返回包含 provider2 的参与者。我的目标是加载它们,因为它们都被选中。那么,如何使用允许我过滤的多个复选框加载参与者?
【问题讨论】:
-
不清楚你在问什么。
-
我已经稍微编辑了这个问题。这次也许很清楚了。
标签: angular typescript filter angular-pipe