__proto__: Array (0) означает javascript - ioni c firestore - PullRequest
0 голосов
/ 15 апреля 2020

Я создаю приложение, у которого есть панель поиска, которая подключается к базе данных 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;
      }
    });
  }

}

Любая помощь будет оценил

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...