当前位置: 首页 > 知识库问答 >
问题:

如何使用angular和springboot添加新产品?

管景天
2023-03-14

我需要在我的表中添加一个新产品。这http://localhost:8080/product/create/在Postman上工作。当我发布并添加新产品时,它会返回id并自动将其添加到我的表中。我的问题是如何在角CLI上实现它。我不知道我该怎么做。有人能帮我吗?这是我的代码:

产品Controller.java

@PostMapping("/product/create/")
private int saveProduct(@RequestBody Products products)
{
   productsService.save(products);
   return products.getId();
}

应用程序。组成部分ts

ngOnInit() {
    this.getProduct();
  }
  public getProduct(): void {
    this.productServive.getProduct().subscribe(
      (response: Product[]) => {
        this.products = response;
      },
      (error: HttpErrorResponse)=> {
        alert(error.message);
      }
    )
  }

  public onAddProduct(addForm: NgForm): void {
    this.productServive.addProduct(addForm.value).subscribe(
      (response: Product) => {
        console.log(response);
        this.getProduct();
      },
      (error: HttpErrorResponse) => {
        alert(error.message);
      }
    );
  }

产品服务ts

private apiServerUrl = environment.apiBaseUrl;

  constructor(private http: HttpClient) { }

  public getProduct() : Observable<Product[]> {
    return this.http.get<Product[]>(`${this.apiServerUrl}/products/hasstocks`);
  }

  public addProduct(product: Product) : Observable<Product> {
    return this.http.post<Product>(`${this.apiServerUrl}/product/create/`, product);
  }

app.component.html

  <form #addForm="ngForm" (ngSubmit)="onAddProduct(addForm)">
    <div class="mb-3">
      <label for="name" class="col-form-label">Name:</label>
      <input type="text" class="form-control" id="name" ngForm name="name">
    </div>
    <div class="mb-3">
      <label for="description" class="col-form-label">Description:</label>
      <input type="text" class="form-control" id="description" ngModel name="description">
    </div>
    <div class="mb-3">
      <label for="sku" class="col-form-label">SKU:</label>
      <input type="text" class="form-control" id="sku" ngModel name="sku">
    </div>
    <div class="mb-3">
      <label for="price" class="col-form-label">Price:</label>
      <input type="text" class="form-control" id="price" ngModel name="price">
    </div>
    <div class="mb-3">
      <label for="quantity" class="col-form-label">Quantity:</label>
      <input type="text" class="form-control" id="quantity" ngModel name="quantity">
    </div>
    <div class="float-end">
      <button [disabled]="addForm.invalid" type="button" class="btn btn-primary">Add Product</button>
    </div>
  </form>

共有1个答案

司寇阳曦
2023-03-14

它不能在一起,你必须将两个方法分离为save和getProduct,但你可以附加getProduct方法和page,当你保存产品并刷新页面时,它似乎会自动将其添加到你的表中

 类似资料:
  • 我有两个实体产品和类别(多对一)关系。我想添加一个新产品,但总是失败。 控制台和邮递员中均出现错误:原因:{原因:{…},消息:'无法执行语句'}消息:'无法执行语句;SQL[不适用];约束[空];嵌套异常为org.hibernate.exception.ConstraintViolationException: 任何帮助请!! 产品ts **ProductCategory.ts** catalo

  • 在数据库表中,如下所示; 我想做的如下; 如何在不刷新的情况下更新新列(gsm列)(php artisan migrate:refresh)

  • 那么,如何使用PySpark向现有的DataFrame添加一个新列(基于Python vector)呢?

  • 我试图做一些事情,比如:Woocommerce更新签出ajax!我正在为我的客户构建一个多步骤表单,其中客户正在使用ajax将产品添加到购物车中。当产品添加到购物车中时,我需要更新收银台。我尝试执行onclick功能,因此当用户在购物车中添加产品时,签出步骤将更新,而不刷新页面: 但它不起作用,我觉得我错过了一些明显的东西......任何提示?:)

  • 我想验证各种日期字段是否被正确更新,但我不想在预测< code>new Date()何时被调用上浪费时间。我如何剔除日期构造函数? 如果相关,这些测试在节点应用程序中运行,我们使用TypeScript。

  • 问题内容: 我知道如何在“ jQuery”中单击按钮来添加类 我想通过angular js实现相同的功能。我有一个控制器-myController1。有人可以帮助我做到这一点吗? 问题答案: AngularJS有一些称为JQlite的方法,因此我们可以使用它。见链接 选择DOM中的元素是 像添加类 所以最后