异步功能不适用于我,它显示错误

时间:2019-09-14 18:20:43

标签: html angular typescript

**显示类别时出现问题。我正在使用

  

异步

功能,但未显示数据**

<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>

我已经尝试过了,但是没有用

product-form.component.ts

export class ProductFormComponent {
  categories$;

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

在这里,我要创建产品数据

save(product) {
    this.productService.create(product);
    console.log(product);
  }

category.service.ts **通过使用

  

.valueChanges

我能够获取数据,但没有将数据存储在firebase db中。显示未定义**

export class CategoryService {
  constructor(private db: AngularFireDatabase) {}

  getCategories() {
    return this.db.list('/categories').valueChanges();
  }
}

我使用此方法创建商品数据并将其推送到数据库
product.service.ts

export class ProductService {
  constructor(private db: AngularFireDatabase) {}

  create(product) {
    return this.db.list('/products').push(product);
  }
}

这是我遇到的错误

  

InvalidPipeArgument:管道“ AsyncPipe”的“ [object Object]”

1 个答案:

答案 0 :(得分:0)

列表类别:

修改getCategories()。添加snapshotChanges()valueChanges()

尝试这样:

return this.db.list('/categories').snapshotChanges();

return this.db.list('/categories').valueChanges();

创建产品:

$products: FirebaseListObservable<any[]>;

create(product) {
     return this.$products.push(product);
}