В вашем коде происходит несколько проблем.
Во-первых, поскольку вы переходите от использования статического массива к вызову из базы данных, теперь вы должны использовать Observable
, который повлияет на ваш шаблон. - вам нужно будет передать через | async
.
(Чтобы продемонстрировать, я просто собираюсь вывести JSON в моем примере, вам нужно будет настроить фактическую структуру объекта):
<div class="list-group" *ngFor="let year of years | async">
{{ year | json }}
</div>
Если вам нужно больше узнать о том, что здесь происходит, см. эту часть урока Angular Tour of Heros .
Далее, ваше объявление о years
необходимоподлежит корректировке:
years: Observable<any>;
(в идеале вы должны использовать финская нотация для обозначения наблюдаемого, но я опущу это для согласованности с вашим кодом).
Естественно, если вы еще не импортировали его, вам также понадобятся:
import { Observable } from 'rxjs';
Наконец, недостаточно просто сохранить объект AngularFireList
, вы должны фактически подписаться наперемены. В этом случае я буду использовать snapshotChanges
, который дает полную структуру, включая ключи, но вы также можете посмотреть на valueChanges
в зависимости от ваших потребностей. (Для доступа к таким клавишам, как «1994», вы должны использовать year.key
в своем шаблоне и snapshotChanges
).
this.years=af.list('/years/Akhilesh').snapshotChanges();
Я рекомендую вам внимательно посмотреть пример в документации AngularFire.