Я изучаю Angular 4, наблюдая за ходом Удеми Моша Хамедани. При построении списка категорий в своем приложении он использовал метод list «AngularFireBase». Я пытался продублировать код, но асинхронный канал не показывает никаких результатов. Я пытался сделать свое исследование, но тщетно.
Я также читал, что некоторые вещи были изменены (https://github.com/angular/angularfire2/blob/master/docs/version-5-upgrade.md). Однако мое приложение, похоже, вообще не находит метод valueChanges. Кроме того, метод db.list возвращает нужное мне значение в соответствии с VS Код Интеллект.
класс, в который я возвращаю категории
import { Injectable } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';
@Injectable()
export class CategoryService {
constructor(private db: AngularFireDatabase) { }
getCategories() {
return this.db.list('/categories');
}
}
класс, из которого я пытаюсь использовать категории в HTML-шаблон
import { Component } from '@angular/core';
import { CategoryService } from '../../category.service';
@Component({
selector: 'app-product-form',
templateUrl: './product-form.component.html',
styleUrls: ['./product-form.component.css']
})
export class ProductFormComponent {
categories$;
constructor(categoryService: CategoryService) {
this.categories$ = categoryService.getCategories();
}
}
HTML-шаблон
<div class="form-group">
<label for="category">Category</label>
<select id="category" class="form-control">
<option value=""></option>
<option *ngFor="let c of categories$ | async" [value]="c.$key">
{{ c.name }}
</option>
</select>
</div>
пожалуйста, помогите, потому что я в отчаянии