【发布时间】:2020-06-10 13:49:07
【问题描述】:
我有一个恐龙列表,我遍历它,然后我添加了一个搜索输入以通过登录属性过滤列表,如下所示
<input type="text" class="recherche" [(ngModel)]="loginToSearch" placeholder="Entrez votre recherche ici...">
<li *ngFor="let dinosaure of dinosauresList | filter: login : loginToSearch" class="list-group-item text-left">
<div>
<img class="img-thumbnail" src="{{ dinosaure.profileImage}}">
<label class="name">
{{dinosaure.login}}<br>
</label>
</div>
<div class="btn-plus">
<label class="pull-right">
<a class="btn btn-success btn-xs glyphicon glyphicon-plus"
(click)="onClickAddFriend(dinosaure)"
title="View"></a>
</label>
</div>
</li>
但我想添加一个条件以在过滤器没有返回结果时显示消息或表单,我尝试了许多我找到的解决方案,但没有一个对我有用。
这是我的过滤器:
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(value: any, args: any, loginToSearch: string): any {
if (!value) {
return null;
}
if (!args && !loginToSearch) {
return value;
}
loginToSearch = loginToSearch.toString().toLowerCase();
return value.filter(data => {
return data.login.includes(loginToSearch);
});
}
}
【问题讨论】:
-
你为什么不把你的
包裹在一个 *ngIf 中? -
@BELLIL 我没有找到合适的条件放入 *ngIf 这就是原因
-
出于性能原因,您应该使用过滤器或排序管道。官方 Angular 文档建议避免使用它。