Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用firebase数据填充下拉列表_Javascript_Angular_Firebase_Firebase Realtime Database_Angularfire2 - Fatal编程技术网

Javascript 无法使用firebase数据填充下拉列表

Javascript 无法使用firebase数据填充下拉列表,javascript,angular,firebase,firebase-realtime-database,angularfire2,Javascript,Angular,Firebase,Firebase Realtime Database,Angularfire2,我试图用我的firebase数据填充下拉列表。我使用的是angular 9.1.9。请帮忙 类别.服务.ts constructor(private db: AngularFireDatabase) { } getCategories() { return this.db.list('/categories', (ref) => ref.orderByChild('name')) .snapshotChanges() .pipe( ma

我试图用我的firebase数据填充下拉列表。我使用的是angular 9.1.9。请帮忙

类别.服务.ts

constructor(private db: AngularFireDatabase) { }

  getCategories() {
    return this.db.list('/categories', (ref) => ref.orderByChild('name'))
      .snapshotChanges()
      .pipe(
        map((actions) => {
          return actions.map((action) => ({
            key: action.key,
            val: action.payload.val(),
          }));
        })
      );
  }
product-form.component.html

<select [ngModel] id="category" class="form-control">
            <option value=""></option>
            <option *ngFor="let c of categories$ | async" [value]="c.key">
                {{c.payload.val().name}}
            </option>
        </select>

{{c.val.name}
会有所帮助,因为您的
val
对象已经包含
payload.val()
,只需从中访问
name
属性即可

export class ProductFormComponent implements OnInit {

  categories$;
  constructor(categoryService: CategoryService) {
    this.categories$ = categoryService.getCategories();
  }