删除搜索栏中的searchTerm时,搜索功能不起作用

我有一个搜索功能,可以过滤列表中的用户。首次搜索用户时,它的工作效果非常好。例如,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>
ly122653002 回答:删除搜索栏中的searchTerm时,搜索功能不起作用

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

本文链接:https://www.f2er.com/3153152.html

大家都在问