我是Firebase数据库的新手,我目前正在尝试将数据推送到我的Firebase数据库中,但遇到了这样的错误Error: Reference.push failed: first argument contains undefined in property 'Product.prdName'
//insert data function in service.ts
insertProduct(Product: Product) {
this.productList.push({
prdName: Product.prdName,
prdCat: Product.prdCat,
prdSup: Product.prdSup,
});
}
//onsubmit function in component.ts
productList: Product[];
constructor(private productService: ProductService) {}
onSubmit(form: NgForm) {
if (form.value.$key == null) {
this.productService.insertProduct(form.value);
} else {
this.productService.updateProduct(form.value);
}
this.resetForm(form);
}
//class.ts
export class Product {
$key: string;
prdName: string;
prdCat: string; //category
prdSup: string; //supplier
}
<!--form snipped-->
<form #productForm="ngForm" (ngSubmit)="onSubmit(productForm)">
<input type="hidden" name="$key" #$key="ngModel" [(ngModel)]="productService.selectedProduct.$key">
<div class="form-group">
<label>Product Name</label>
<input class="form-control" name="name" #name="ngModel" [(ngModel)]="productService.selectedProduct.prdName" placeholder="Full Name">
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary" (onclick)="">Submit</button>
</div>
</form>
有人可以帮我吗?
如果需要更多片段,请告诉我。提前谢谢。
你正在传递onSubmit(productForm)
,所以你会得到这样的输出
{
$key : value of productService.selectedProduct.$key
name : value of productService.selectedProduct.prdName
}
你能做的是
任一更改
input
name
属性的值与类相同Product
如name='name'
name='prdName'
或
this.productService.insertProduct(form.value);
自
this.productService.insertProduct(this.productService.selectedProduct);