在Angular中,如果你想要将一个值推送到具有数组作为值的表单控件,你可以使用FormArray来管理这个数组。FormArray是Angular表单模块中的一个类,它允许你创建一个可以动态添加或删除表单控件的数组。
假设你有一个表单,其中有一个字段是一个数组,你想要动态地向这个数组添加新的值。
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';
@Component({
selector: 'app-dynamic-form',
templateUrl: './dynamic-form.component.html',
styleUrls: ['./dynamic-form.component.css']
})
export class DynamicFormComponent {
dynamicForm: FormGroup;
constructor(private fb: FormBuilder) {
this.dynamicForm = this.fb.group({
items: this.fb.array([])
});
}
get items() {
return this.dynamicForm.get('items') as FormArray;
}
addItem(value: string) {
const control = this.fb.control(value, Validators.required);
this.items.push(control);
}
onSubmit() {
console.log(this.dynamicForm.value);
}
}
在HTML模板中,你可以这样使用:
<form [formGroup]="dynamicForm" (ngSubmit)="onSubmit()">
<div formArrayName="items">
<div *ngFor="let item of items.controls; let i = index" [formGroupName]="i">
<input formControlName="item" placeholder="Item">
</div>
</div>
<button type="button" (click)="addItem('New Item')">Add Item</button>
<button type="submit">Submit</button>
</form>
如果你遇到了无法将值推送到FormArray的问题,可能的原因包括:
解决方法:
通过上述方法,你应该能够有效地将值推送到Angular表单中的数组控件。
领取专属 10元无门槛券
手把手带您无忧上云