Iām currently exploring how to implement array filtering in Angular 2 with TypeScript. Specifically, I am trying to filter data for a search bar in Ionic 2. While the list in the template successfully displays the data, I am encountering difficulty getting the filtering functionality to work.
initializeItems(i:number) {
this.http.get('https://maps.googleapis.com/maps/api/place/details/json?placeid='+this.placeid+'&key=AIzaSyBPi-ayuvkTht4wddCcvcy0l2wIBdT9P2w').map(res => res.json()).subscribe(data => {
this.locations[i]._detail = data.result;
this.names.push([
{
name: this.locations[i]._detail.name,
adress: this.locations[i]._detail.formatted_address,
phone: this.locations[i]._detail.formatted_phone_number
}
]);
this.items = this.names;
console.log(this.items);
});
}
getItems(ev) {
this.items = this.names;
console.log(this.items);
// set val to the value of the ev target
var val = ev.target.value;
// if the value is an empty string don't filter the items
if (val && val.trim() != '') {
this.items = this.items.filter((item) => {
return (item.name.toLowerCase().indexOf(val.toLowerCase()) > -1);
})
}
}
Upon entering text into the search bar, I encounter the following error message.