фильтрация данных в базе данных * 100 * * - PullRequest
0 голосов
/ 09 февраля 2020

Я хотел создать панель поиска с помощью c firebase, используя angular. Но со мной это не сработало, так как когда я набираю в строке поиска, звучит так, будто функция filterList не вызывается, или я не знаю, в чем конкретно проблема

export class Tab1Page implements OnInit{
  public grantsList: any[];
  public loadedGrantsList: any[];
  constructor(private dataService: DataService, public afdm: AngularFireDatabase ) {

  }

 ngOnInit(){
  this.afdm.list('/grant').valueChanges().subscribe(grantsList => {
    this.grantsList = grantsList;
    this.loadedGrantsList = grantsList;
    //console.log(this.grantsList)
   });
 }

 initializeItems(): void {
  this.grantsList = this.loadedGrantsList;
}

filterList(evt) {
  this.initializeItems();

  const searchTerm = evt.srcElement.value;

  if (!searchTerm) {
    return;
  }

  this.grantsList = this.grantsList.filter(currentGoal => {
    if (currentGoal.title && searchTerm) {
      if (currentGoal.title.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1) {
        return true;
      }
      return false;
    }
  });
}

}

, вот мое мнение

<ion-header>
  <ion-toolbar color="primary">
    <ion-title>
      Home
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content>
  <ion-searchbar
  showcancelbutton=""
  (ioninput)="filterList($event)"
  ></ion-searchbar>
  <ion-list>
    <ion-item  button *ngFor="let data of grantsList">
      <ion-label class="ion-text-wrap">
        <h3>{{data.title}}</h3>
        <p>Type: {{data.Category}}</p>
        <p>Deadline: {{data.Deadline}}</p>
      </ion-label>
    </ion-item>
  </ion-list>
</ion-content>

я хочу отфильтровать список панели поиска по заголовку

...