如何向 ngForm 提交值?

How to submit a value to ngForm?

我在 Angular material 中有一个带有一些输入字段的 ngForm。我想将新字段 total 提交给不是输入字段的 ngForm,因此它应该是一个只读字段,它的值应该来自此 [=20 所在组件的 ts 文件=] 文件已链接。我该怎么做? 目前,在 ts 文件中我已经有了 total 属性 以及应该在 ngForm 中提交的值,但我不知道如何提交它。 我需要将总数设置到名称为 total 的 ngForm 中,其方式与例如将名称为 expiration 的过期设置到 ngForm 中的方式相同。

以下是我目前的 html 文件:

<form #paymentForm="ngForm">

 <div class="form-group">
    <label for="ownerName"><strong>Name* </strong></label>
    <input type="text" ngModel name="ownerName" class="form-control" id="ownerName" placeholder="Name" required>
 </div>


  <div class="form-group">
    <label for="ownerLastName"><strong>Last name* </strong></label>
    <input type="text" ngModel name="ownerLastName" class="form-control" id="ownerLastName" placeholder="Last name" required>
 </div>


  <div class="form-group">
     <label for="cardNumber"><strong>Card number* </strong></label>
     <input type="text" ngModel name="cardNumber" class="form-control" id="cardNumber" placeholder="Card number" required>
  </div>

  <div class="form-group">
     <label for="cvv"><strong>Cvv* </strong></label>
     <input type="text" ngModel name="cvv" class="form-control" id="cvv" placeholder="Cvv" required>
  </div>


  <div class="form-group">
    <label for="expiration"><strong>Expiration* </strong></label>
    <input type="date" ngModel name="expiration" class="form-control" id="expiration" placeholder="Expiration" required>
 </div>


  <div class="modal-footer">
     <button [disabled]="paymentForm.invalid" type="submit" class="btn btn-primary" (click)="createPayment('Successful', 'ok', paymentForm)" routerLink="/orders"  routerLinkActive="active">Pay</button>
  </div>
  </form>

<router-outlet></router-outlet>

您可以从表单值创建一个新对象并添加您想要的任何其他字段

onSubmit(myForm: NgForm) {
   const formAndTotal = {
     ...myForm.value,
     total: this.myTotal,
   }
   //do stuff with formAndTotal
  }