Ion-SearchBar 无法正常工作

Ion-SearchBar not working properly

我有一个用于填充的数组,我正在使用离子搜索栏,因此用户可以搜索列表中的项目,但问题是当用户退格或删除他们正在搜索的内容时列表不会回到原来的状态

代码如下:

<ion-searchbar  (ionInput)="setFilteredItems()" placeholder="Search"
                [(ngModel)]="searchTerm">
</ion-searchbar>

过滤函数:

filterItems(searchTerms){
    return this.categories.filter((item)=>{
      return item.category_name.toLowerCase().indexOf(searchTerms.toLowerCase())>-1;
    })

    setFilteredItems(){
        this.categories = this.filterItems(this.searchTerm);
    }
}

还有另一个名为 ionClear 的输出 属性 在单击退格按钮时触发。

你可以这样使用它:

<ion-searchbar (ionClear)="setFilteredItems()" (ionInput)="setFilteredItems()" 
placeholder="Search" [(ngModel)]="searchTerm"></ion-searchbar>

试试这个代码:

//Maintain a copy of data on which needs a search
this.searchListCopy = JSON.parse(JSON.stringify(this.categories));

protected search = () => {
    this.resetChanges();

    this.categories = this.categories.filter((item)=>{
        return item.category_name.toLowerCase().indexOf(searchTerms.toLowerCase())>-1;
    })
};

protected resetChanges = () => {
    this.categories = this.searchListCopy;
};

HTML 会像:

<ion-searchbar class="searchIcon" [(ngModel)]="searchKey" [showCancelButton]="false" (ionInput)="search()" (ionClear)="resetChanges()">
</ion-searchbar>