Ion-SearchBar无法正常工作

时间:2018-06-27 12:06:59

标签: angular ionic-framework ionic2 ionic3 searchbar

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

下面的代码:

<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);
    }
}

2 个答案:

答案 0 :(得分:4)

尝试以下代码:

//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>

答案 1 :(得分:0)

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

您可以像这样使用它:

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