我得到 User 1。但是如果我将术语更改为 ="Us"例如我仍然只有 Use-6ren">
gpt4 book ai didi

javascript - 删除搜索栏中的搜索词时,搜索功能不起作用

转载 作者:行者123 更新时间:2023-12-02 22:36:18 24 4
gpt4 key购买 nike

我有一个搜索功能,可以过滤列表中的用户。第一次搜索用户时它工作得非常好。例如 searchTerm ="User1"=> 我得到 User 1。但是如果我将术语更改为 ="Us"例如我仍然只有 User1,其他用户不再显示。所以这个问题就像反向过滤一样。从“”到“用户”有效。但从“用户”到“”则不然。我该如何解决这个问题?当我记录 console.log(result); 时,它准确地显示了问题。该数组已被过滤,但删除内容时该数组仍保持过滤状态。

我的代码:用户服务.ts

getList(): Observable<any> {
return this.http.get(this.url)
}

页面.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);
}

页面.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>

最佳答案

如果我没记错的话,您仅在 init 上使用“getAllUsers()”。当您过滤列表时,您将用户列表设置为过滤后的列表。我想您需要在每次过滤之前使用“getAllUsers()”,或者将所有用户保存在一个单独的列表中,您可以在之后进行过滤。

关于javascript - 删除搜索栏中的搜索词时,搜索功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58727872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com