Я создаю приложение, у которого есть панель поиска, которая подключается к базе данных Firebase, извлекает данные и помещает их в результаты поиска.
Я знаю благодаря console.log, что база данных подключается к приложению как можно увидеть в массиве, напечатанном здесь в консоли
2) [{…}, {…}]
0: {category: "u11", location: "glasgow"}
1: {category: "u13", location: "stirling"}
length: 2
__proto__: Array(0)
Однако моя панель поиска не возвращает никаких результатов. Я предполагаю, что ошибка связана с объектом proto . Я пытался сделать некоторые исследования, но безрезультатно. Кто-нибудь знает смысл этого.
Я прикреплю файл html и homepage.ts, используемый для подключения и создания панели поиска. Возможно, там есть ошибка. Моя коллекция камина называется соревнованиями, и я пытаюсь отфильтровать по местоположению
Домашняя страница. html
<ion-header [translucent]="true">
<ion-toolbar>
<ion-title>
Competition Search
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-searchbar
showcancelbutton=""
(ioninput)="filterList($event)"
></ion-searchbar>
<ion-list>
<ion-item *ngFor="let item of goalList">
<ion-label>{{ item.competitionlocation }}</ion-label>
</ion-item>
</ion-list>
</ion-content>
Homepage.ts
import { Component,OnInit } from '@angular/core';
import { AngularFirestore } from '@angular/fire/firestore';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
public goalList: any[];
public loadedGoalList: any[];
constructor(private firestore: AngularFirestore) {}
ngOnInit() {
this.firestore.collection(`competition`).valueChanges()
.subscribe(goalList => {
this.goalList = goalList;
this.loadedGoalList = goalList;
console.log(goalList);
});
}
initializeItems(): void {
this.goalList = this.loadedGoalList;
}
filterList(evt) {
this.initializeItems();
const searchTerm = evt.srcElement.value;
if (!searchTerm) {
return;
}
this.goalList = this.goalList.filter(currentGoal => {
if (currentGoal.competitionlocation && searchTerm) {
if (currentGoal.competitionlocation.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1) {
return true;
}
return false;
}
});
}
}
Любая помощь будет оценил