Angular: обработка форм для публикации добавления данных в серверную часть

#angular

#angular

Вопрос:

Я новичок в Angular и разрабатываю приложение. У меня есть форма, в которой данные должны быть добавлены в БД. Но, похоже, что-то не так, когда интерфейс пытается отправить данные формы с помощью метода services.

 <h2>Add Bids</h2>
<div>
  <form nz-form [formGroup]="validateForm" class="add-bid-form" (ngSubmit)="submitForm()">

    <nz-form-item>
      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="amount" nzRequired>Transportation cost</nz-form-label>
      <nz-form-control [nzSm]="14" [nzXs]="24">
        <input nz-input type="text" id="amount" formControlName="amount"  />
      </nz-form-control>
    </nz-form-item>

// other input fields in the same format as above

    <div nz-row nzJustify="center">
      <div nz-col nzFlex="3">
        <nz-form-control [nzSpan]="14" [nzOffset]="6">
          <button nz-button nzType="primary"
                  (click)="addBids()"
          >Add Payment</button>
        </nz-form-control>
      </div>
      <div nz-col nzFlex="2">
        <button nz-button nzType="default" routerLink="/dashboard">
          Go To Dashboard
        </button>
      </div>
    </div>

  </form>
</div>

  

Методы файла TS:

  // Form Data validation handler
  formData(): any{
    return this.validateForm.value;
  }

  addBids(): any {
    // tslint:disable-next-line:forin
    // const bidId = this.formData().bidId;
    const amount = this.formData().amount;
    const description = this.formData().description;
    const requisitionId = null;
    const supplierId = this.formData().supplierId;

    this.backendService.addBid(amount, description, requisitionId, supplierId)
      .subscribe(data => {
        this.bidData = data;
        console.log(data);
      });
  }
  

Для справки это сервис:

   addBid(amount, description, requisitionId, supplierId): any {
    const headers = new HttpHeaders({
      'Content-Type': 'application/json'
    });
    return this.http
      .post(this.uri   '/bid/add', { amount, description, requisitionId, supplierId }, {headers})
      .pipe(catchError(this.errorHandler));
  }

  

Ценю любую информацию по этому вопросу, спасибо!

Комментарии:

1. Что именно не работает? Любая ошибка, которую выводит консоль? Пожалуйста, уточните

Ответ №1:

Форма в вашем представлении обрабатывается функцией с именем submitForm()

 <form nz-form [formGroup]="validateForm" class="add-bid-form" (ngSubmit)="submitForm()">
  

В то время как кнопка привязана к addBids()

 <button nz-button nzType="primary"
                  (click)="addBids()"
  

Я рекомендую вам выбрать один из них, а не оба.

Комментарии:

1. Я согласен. Я бы переместил логику addBids в функцию submitForm и сделал кнопку кнопкой отправки