【发布时间】:2017-07-08 14:57:17
【问题描述】:
我想像这样在数组中设置值:
this.form.controls[name].setValue('name')
但我正在使用数组形式,这不起作用,即使我显式传递数组索引
例如,这是我的表单数组,我想做的是在函数中设置值
user: FormGroup;
users: FormGroup;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.user = this.buildGroup();
this.users = this.fb.group({
data: this.fb.array([this.user])
});
}
get fData() {
return this.users.get('data') as FormArray;
}
buildGroup() {
return this.fb.group({
name: ['', [Validators.required, Validators.minLength(2)]],
account: this.fb.group({
email: ['', Validators.required],
confirm: ['', Validators.required]
})
});
}
setValue(index) {
// This doesn't work
this.fData[index].controls[name].setValue('name')
}
onSubmit() {
this.fData.push(this.buildGroup());
const {valid, value} = this.fData;
console.log(valid, value);
}
【问题讨论】:
-
放弃我之前的回答。问题很可能是你不是passing an array to setValue。
-
不应该把索引传给具体的数组形式吗?我正在尝试这个,但这不起作用 setValue(index) { this.fData.setValue(['Name']);错误说必须为名称为'name'的fom控件提供一个值
-
试试这个:
this.fData[index].controls['name'].setValue(['name']) -
不工作:无法读取未定义的属性“控件”
标签: angular angular-reactive-forms