Почему я получаю сообщение об ошибке «Ожидается функция» при использовании NgFor, доступе к Firebase, Ionic3 и AngularFire - PullRequest
0 голосов
/ 05 ноября 2018

Я использую Ionic3 и Angularfire2 для доступа к базе данных Firebase. Я создаю «.ts» файл с именем «Service», чтобы экспортировать функцию «gelAll» для получения списка из таблицы «cores» в Firebase.

 constructor(public db: AngularFireDatabase) {  }
  getAll(){
    return this.db.list('cores').valueChanges();
  }`

После этого я импортирую класс getAll в другой файл ".ts", чтобы использовать список:

export class HomePage {

  private listaCores;

  constructor(public navCtrl: NavController, public dbService: FirebaseServiceProvider ) {
  this.listaCores = this.dbService.getAll();
  }

В этот момент все работает нормально, но когда я пытаюсь показать 'listaCores' на экране, используя простой ng, у меня появляется ошибка "Ожидается функция" ...

  <ul>
    <li *ngFor="let c of listaCores|async">
      {{c.descCor}}
    </li>
  </ul>

Есть идеи, почему это происходит? Может быть проблема с данными в Firebase?

Заранее спасибо!

1 Ответ

0 голосов
/ 05 ноября 2018

Возможно, есть проблема во время выполнения, цикл ngFor пытается получить доступ к переменной до того, как было установлено значение, вместо вызова функции в конструкторе попробуйте это:

ionViewDidLoad() {
    this.listaCores = this.dbService.getAll();
}

ionViewDidLoad является частью жизненного цикла представления

...