Я изучаю, как фильтровать массив с данными в Angular 2 с машинописным текстом. Фильтрация предназначена для поисковой панели в Ionic 2, список в шаблоне получает данные и отображается, но фильтрация не будет работать.Фильтрация массива в угловом 2 машинописных текста
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);
})
}
}
Когда я типа в SearchBar я получаю эту ошибку.
Пользователь предполагает, 'item.name' относится к строке. Как вы уверены в этом? – Leon
item.name - это строка, но я не понимаю, как получить доступ к ней в фильтре? – Mohammed
Можете ли вы попробовать объявить 'val' с' let'? то есть 'let val = ev.target.value;' – AngularChef