我有一个搜索功能,可以过滤列表中的用户。首次搜索用户时,它的工作效果非常好。例如,searchTerm =“ User1” =>我得到了User1。但是,如果我将术语改为=“ Us”,例如我仍然只有User1,其他用户不再显示。因此,问题就像反向过滤一样。从“”到“用户”的作品。但不是从“用户”到“”。我该如何解决?当我登录console.log(result);
时,它确实显示了问题。数组已过滤,但删除内容时仍保持过滤状态。
我的代码: userservice.ts
getList(): Observable<any> {
return this.http.get(this.url)
}
page.ts
public searchTerm: string = "";
userList: Observable<any>;
offset = 0;
searching = false;
ngOnInit() {
this.getallUsers();
}
getallUsers() {
this.userList = this.userService.getList()
.pipe(map(response => response.results));
}
filterUsers(searchTerm) {
this.searching = true;
return this.userList.pipe(
map(res => {
const result = res.filter(user => {
return user.username.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
});
this.searching = false;
console.log(result);
return result;
})
);
}
searchList() {
this.userList = this.filterUsers(this.searchTerm);
console.log(this.searchTerm);
}
page.html
<ion-searchbar mode="ios" class="items-searchbar" animated mode="ios" [(ngModel)]="searchTerm" (ionChange)="searchList()" placeholder="Filter by name..."></ion-searchbar>
<ion-list class="pad" mode="ios">
<ion-item lines="none" *ngFor="let user of (userList | async); let i = index">
</ion-item>
</ion-list>