Я реализую проект ionic 2 с поиском фильтра по данным, которые я получаю из API. данные вытягиваются правильно, но моя проблема заключается в их фильтрации
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, LoadingController, AlertController } from 'ionic-angular';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import { TransactionsPage} from '../../pages/pages'
/**
* Generated class for the RoutesPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
@IonicPage()
@Component({
selector: 'page-routes',
templateUrl: 'routes.html',
})
export class RoutesPage {
items: any;
constructor(public navCtrl: NavController,
public navParams: NavParams,
public http: Http,
public LoadingController: LoadingController,
public alertCtrl: AlertController,
) {
}
ionViewDidLoad() {
let loader = this.LoadingController.create({
content: 'Please Wait'
});
loader.present().then(()=>{
this.http.get('assets/locations.json').map(res => res.json()).subscribe(data =>{
console.log(JSON.stringify(data));
this.items= data;
});
loader.dismiss();
})
}
getItems(ev: any) {
// Reset items back to all of the items
this.ionViewDidLoad();
// set val to the value of the searchbar
let 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.toLowerCase().indexOf(val.toLowerCase()) > -1);
})
}
}
}
Когда я начинаю печатать в текстовом поле, я получаю сообщение об ошибке в консоли браузера, и оно гласит:
item.toLowerCase is not a function
Любая помощь в том, как это сделать? Спасибо
item
является объектом, а не строкой, попробуйте использовать свойство объектовlocations.json
, напримерitem.title.toLowerCase()
- person JoxieMedina   schedule 16.09.2017items
- person Sachila Ranawaka   schedule 16.09.2017