如何将表单组数据传递给另一个组件中的提交按钮(Angular 7)

How to Pass Form Group Data to Submit Button in Another Component (Angular 7)

我在将我的表单组数据传递给 saveDialog() 函数时遇到问题,该函数更新提交按钮上的表单数据。

如何在 Angular 7 中执行此操作?我正在尝试将每个表单组的所有组件分开,然后 submitted/updated 使用一个按钮一起使用?

修改视图-action.component.html

      <form [formGroup]="modifyActionForm" (ngSubmit)="saveDialog()">
    <div class="container" fxLayout="row" fxLayoutGap="25px">
      <div class="column1" fxLayout="column">
        <mat-form-field>
          <mat-label>Name</mat-label>
          <input matInput>
          <mat-icon matSuffix>sentiment_very_satisfied</mat-icon>
        </mat-form-field>
        <mat-form-field>
          <mat-label>Keyword</mat-label>
          <input matInput>
          <mat-icon matSuffix>sentiment_very_satisfied</mat-icon>
        </mat-form-field>
        <mat-form-field>
          <mat-label>Description</mat-label>
          <input matInput>
          <mat-icon matSuffix>sentiment_very_satisfied</mat-icon>
        </mat-form-field>
        <mat-form-field>
          <mat-label>Icon</mat-label>
          <input matInput>
          <mat-icon matSuffix>sentiment_very_satisfied</mat-icon>
        </mat-form-field>
        <mat-form-field>
          <mat-label>Priority</mat-label>
          <input matInput>
          <mat-icon matSuffix>sentiment_very_satisfied</mat-icon>
        </mat-form-field>
      </div>
    </form>

修改视图-action.component.ts

export class ModifyViewActionComponent implements OnInit {
  modifyActionForm: FormGroup;
  dbrAction: any;


  constructor() { }

  ngOnInit() {
    this.initData();
  }

  initData() {
    this.dbrAction = JSON.parse(localStorage.getItem('DbrAction'));
  }
}

首先,为了从 FormGroup 获取数据,您需要在每个要从中获取数据的输入上添加 formControlName。像那样:

 <mat-form-field>
      <mat-label>Name</mat-label>
      <input matInput formControlName="name">
      <mat-icon matSuffix>sentiment_very_satisfied</mat-icon>
 </mat-form-field>

您还需要在您的 .ts 文件中声明每个控制器的 FormGroup。像那样:

modifyActionForm = new FormGroup({
  name : new FormControl(),
  keyword: new FormControl(),
  description: new FormControl(),
  // And that ⬆ for each input in your form
})

为了从此 FormGroup 中获取数据,您需要这样做:

this.modifyActionForm.value

您将获得一个包含您输入的数据的对象。

您的问题不是很清楚,但是如果您想将数据(例如您的 FormGroup)从一个组件传递到另一个组件,则存在许多技术。

我建议您阅读 Jeff Delaney 的这篇精彩文章,其中解释了在 Angular 组件之间共享数据的不同方式(Fireship.io - Sharing Data between Angular Components) and this one Fireship.io - Angular Reactive Forms Basics Guide 解释了反应式工作原理表格及其使用方法。

美好的一天!