【问题标题】:Property 'splice' does not exist on type 'FormArray' angular 6类型“FormArray”角度 6 上不存在属性“拼接”
【发布时间】:2018-12-21 13:07:33
【问题描述】:

如何在第 0 个索引处推送 formArray 中的 formgroup。它应该被 formArray 中的第 0 个元素替换。

【问题讨论】:

    标签: angular angular-reactive-forms


    【解决方案1】:

    按照 nicraft 的建议,在 FormArray 上使用 insert 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 供您参考。

    【讨论】:

      【解决方案2】:

      您可以使用 FormArray insert-anchor

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-07
        • 2019-06-30
        • 2018-01-09
        • 2021-08-22
        • 2021-07-31
        • 1970-01-01
        相关资源
        最近更新 更多