我从后端获取了一个在搜索栏中使用的数组
当然它工作正常,但问题是我无法根据搜索栏内的用户类型进行过滤
这是我的搜索栏html
<ion-toolbar color="primary" >
<ion-searchbar (ionInput)="getItems($event)" (ionCancel)="onCancel($event)" [showCancelButton]="false" ></ion-searchbar>
<ion-list *ngIf="showList">
<ion-item *ngFor="let item of items" (click)="searchBar(item)">
{{ item.name }}
</ion-item>
</ion-list>
</ion-toolbar>
</ion-header>
这是我的.ts文件
getItems(ev) {
// Show the results
this.showList = true;
// Reset items back to all of the items
this.initializeItems();
// set val to the value of the searchbar
let val = ev.target.value;
// if the value is an empty string don't filter the items
if (val && val.trim() != '') {
this.items = this.items.filter((item) => {
//return item.toLowerCase().indexOf(val.toLowerCase()) > -1;
return item;
})
} else {
// Hide the results
this.showList = false;
}
}
onCancel(ev) {
// Show the results
this.showList = false;
// Reset the field
ev.target.value = '';
}
答案 0 :(得分:1)
您可以使用管道实现此目的:
@Pipe({
name: 'filteritem'
})
export class FilterPipe implements PipeTransform{
transform(items: any[], args: any[]): any {
if(args !== undefined){
return items.filter(item => item.indexOf(args[0]) > -1);
}
}
}
然后,您可以更改transform
的实现,以根据输入值更改您希望过滤数组的方式。