【发布时间】:2018-12-21 13:07:33
【问题描述】:
如何在第 0 个索引处推送 formArray 中的 formgroup。它应该被 formArray 中的第 0 个元素替换。
【问题讨论】:
标签: angular angular-reactive-forms
如何在第 0 个索引处推送 formArray 中的 formgroup。它应该被 formArray 中的第 0 个元素替换。
【问题讨论】:
标签: angular angular-reactive-forms
按照 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 供您参考。
【讨论】:
您可以使用 FormArray insert-anchor
control.insert(index: number, control: AbstractControl): void
【讨论】: