angular - 将表单字段动态添加到 Angular 8 中的 react 表单

标签 angular typescript angular8 angular-reactive-forms dynamic-forms

我在从数组中填充表单字段时遇到了一些问题。我最初的想法是将数组从单个组件输入到将处理表单的单个组件。而不是制作多种形式。但我似乎无法让它发挥作用。任何帮助,将不胜感激!我浏览过 Google/stack/medium,似乎找不到任何东西。我在 plunkr 上做了一个例子。

https://stackblitz.com/edit/angular-t7hcq6

在ts文件中:

  public demoForm: FormGroup;
  public arrayItems: data = [];

  private formFields = ["Sku", "Title"];

  constructor(private _formBuilder: FormBuilder) {
    this.demoForm = this._formBuilder.group({
      demoArray: this._formBuilder.array([])
    });
  }

  ngOnInit() {
    this.formFields.map(field => {
      this.arrayItems.push({ title: field });
      this.demoArray.push(this._formBuilder.control(''));
    });
  }

  get demoArray() {
    return this.demoForm.get("demoArray") as FormArray;
  }

在模板中:

<form [formGroup]="demoForm">
   <div formArrayName="demoArray" 
      *ngFor="let arrayItem of arrayItems; let i=index">
      <input type="checkbox"[formControl]="demoArray[i]">
      <label>{{arrayItem.title}}</label>
   </div>
</form>

谢谢大家。

最佳答案

像这样改变你的模板:

<form [formGroup]="demoForm">
   <div formArrayName="demoArray" 
      *ngFor="let arrayItem of arrayItems; let i=index">
      <input type="checkbox" [formControlName]="i"> <!-- this line -->
      <label>{{arrayItem.title}}</label>
   </div>
</form>

关于angular - 将表单字段动态添加到 Angular 8 中的 react 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437288/

相关文章:

angular - 如何测试使用 primeng 组件的 Angular 组件

typescript - 无法在 TypeScript 中调试 - VS Code

javascript - TypeScript 将类型保存为未定义

Angular 8 前端不将捕获的数据/字段发送到后端

angular - 如何在 Angular 中缩短文件路径?

angular - 如何在 Angular 2 中迭代 JSON 对象?

css - 使 mat-card-image 中的所有图像大小相同但正确缩放

javascript - 手动加载我自定义的节点模块(Angular 4.x)

TypeScript 泛型 : void, 从不,还是未定义?

javascript - Angular 8,用户输入并随用户输入和选定的复选标记一起更新