离子 2:搜索过滤器返回未定义



我想在我的页面上有一个搜索过滤器。但是,它似乎总是返回未定义的。以下是我的打字稿:

                        filterItems(searchTerm) {
     this.category.forEach((item) => {
         return item.data.filter((data) =>{
           data.title.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
         })
      });
 }
   setFilteredItems() {
 this.searchControl.valueChanges.debounceTime(500).subscribe(search => {
   this.searching = false;
   this.loadcategory = this.filterItems(this.searchTerm);
   if (this.searchTerm == "") {
     this.loadcategory = [];
     this.searchresultcount = "0";
   } else {
     this.loadcategory;
     console.log(this.loadcategory)
   }
 });
}

我控制台.log(this.loadcategory(,但显然它返回为未定义。我的代码中是否有我犯了错误的某个地方?任何帮助将不胜感激。

是的,您确实有一个小错误。您的this.category.filter回调有返回,但实际上filterItems不返回任何值。假设this.category是一个数组,请尝试:

        filterItems(searchTerm) { 
        let temp:any[] =[];
        this.category.forEach((item) => { 
        temp.push(...item.data.filter((data) =>{ 
data.title.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1; 
        }) 
        );
        });
    return temp;//return from function
    }

相关内容

  • 没有找到相关文章

最新更新