2017-02-11 20 views
0

Я хотел бы иметь фильтр поиска на моей странице. Однако кажется, что он всегда будет возвращать неопределенные. Ниже моя Машинопись:Ионный 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) 
    } 

}); 

} 

I console.log (this.loadcategory), но, видимо, это возвращает как неопределенные. Где-то в моем коде, где я сделал ошибку? Любая помощь приветствуется.

+0

Вы должны создать трубу причиной этого является то, что трубы сделаны для. Вы можете найти пример здесь https://github.com/VadimDez/ng2-filter-pipe/blob/master/src/ng2-filter.pipe.ts – misha130

+0

Как вы используете 'searchTerm' в шаблоне? –

ответ

0

Да, у вас есть небольшая ошибка. Ваш 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 
    }