[每当我使用搜索过滤列表时,它都会为我提供过滤后的值。当我的搜索栏为空时,它并没有以离子形式显示我的原始列表。
page.html
<ion-searchbar
[(ngModel)]="searchTerm"
[(ngModel)]="searchList"
(input)="setFilteredTitle()"
class="search">
</ion-searchbar>
Page.ts
filterItems(searchTerm){
return this.result.filter(item => {
return item.category_name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
});
}
filterList(searchList){
return this.result2.filter(items => {
return items.store_name.toLowerCase().indexOf(searchList.toLowerCase()) > -1;
});
}
setFilteredTitle(){
this.showlist = true
this.result = this.filterItems(this.searchTerm)
this.result2 = this.filterList(this.searchList)
}
在ionic中,我想从使用这些功能的单个搜索栏中搜索两个不同的列表。它过滤了我的数据。但是,每当我从搜索栏中删除值时,它都不会把我的原始列表带回来,并且刷新之前也不会再次过滤。有什么问题,请提前帮助thanx。
使用当前逻辑,只有在数组中匹配该值时,您才能获取值;而当清除该值时,它与任何内容都不匹配,并且您会得到一个空的Array
。因此,如果您在searchTerm
中什么都没有得到,则需要更改逻辑以返回相同的数组。您的代码应如下所示。我还没有玩过ion-searchbar
,所以在这里idk有关list变量,但是您知道我在说什么。
filterItems(searchTerm){
if(!searchTerm) return this.result;
return this.result.filter(item => {
return item.category_name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
});
}
filterList(searchList){
if(!searchList) return this.result2;
return this.result2.filter(items => {
return items.store_name.toLowerCase().indexOf(searchList.toLowerCase()) > -1;
});
}