属性“ splice”在类型“ FormArray” Angular 6上不存在

时间:2018-12-21 13:07:33

标签: angular angular-reactive-forms

如何在第0个索引处将formgroup推入formArray中。应该将其替换为formArray中的第0个元素。

2 个答案:

答案 0 :(得分:1)

您可以使用 FormArray insert-anchor

control.insert(index: number, control: AbstractControl): void

答案 1 :(得分:1)

根据nicraft的建议,在insert上使用FormArray API。您可能必须相应地管理模板。

在这里,尝试一下:

import { Component } from '@angular/core';
import { FormBuilder, FormGroup, FormArray, FormControl } from '@angular/forms';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  form: FormGroup;

  constructor(private fb: FormBuilder) {}

  ngOnInit() {
    this.form = this.fb.group({
      array: this.fb.array([])
    });
  }

  addItem() {
    const formArray  = this.array;
    formArray.insert(0, this.fb.control(formArray.length + 1));
  }

  get array() {
    return (<FormArray>this.form.get('array'));
  }
}

注意::在这里,我只是向FormControl array添加新的FormArray并设置FormArray的当前长度+ 1作为它的值。


  

这是您推荐的Working Sample StackBlitz