在Angular中,可以使用展开运算符来设置FormArray的值。下面是一个示例:
首先,创建一个FormArray,并设置初始值为空数组:
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, FormArray } from '@angular/forms';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit {
form: FormGroup;
ngOnInit() {
this.form = new FormGroup({
items: new FormArray([])
});
}
get items() {
return this.form.get('items') as FormArray;
}
}
然后,在模板中循环遍历FormArray,并使用展开运算符将数据绑定到每个表单控件:
接下来,可以使用展开运算符设置FormArray的值。假设有一个包含表单数据的数组:
const data = [
{ name: 'John', age: 30 },
{ name: 'Jane', age: 25 }
];
可以使用展开运算符将数据设置到FormArray中:
this.form.setControl('items', this.setFormArrayValues(data));
setFormArrayValues()方法使用展开运算符将数据绑定到每个表单控件:
setFormArrayValues(data: any[]): FormArray {
const formArray = new FormArray([]);
data.forEach(item => {
formArray.push(new FormGroup({
name: new FormControl(item.name),
age: new FormControl(item.age)
}));
});
return formArray;
}
这样,FormArray中的表单控件就会被设置为相应的值。
希望这个示例对你有帮助!