【发布时间】:2020-06-20 12:21:38
【问题描述】:
我有这样的反应形式:
constructor(...){
this.form = this.formBuilder.group({
name: ['', Validators.compose([Validators.required, Validators.maxLength(50)])],
memes: this.formBuilder.array([
this.initMemes('TrollFace')
])
});
}
initMemes (name?) {
return this.formBuilder.group({
id: [''], name: [name]
});
}
稍后我可以添加更多memes:
addMemes () {
const control = <FormArray>this.form.controls['memes'];
control.push(this.initMemes('anyName'));
}
然后如果我得到表单值,我得到:
this.form.controls['memes'].value - 这里有数组
但是有一种情况,当我需要将这个this.form.controls['memes'].value 设置为一个空数组时,怎么可能呢?
如果我这样设置:
this.form.controls['memes'].setValue([])
我收到错误:Must supply a value for form control at index: 0.
我做错了什么?
【问题讨论】:
-
对于任何阅读此内容的人:在学习了有关 FormArray 的教程后,我遇到了这个错误。解决方案很简单,只需用一对空方括号 [] 初始化 FormArray:this.formBuilder.array([ ])。我不知道那里的函数调用应该做什么,我只知道它给出了那个错误。
标签: javascript angular typescript angular2-formbuilder