FormControl值是否可以是数组?

时间:2017-12-12 08:02:58

标签: angular angular-reactive-forms form-control formarray

我正在研究Angular Reactive表单。这是我的组件类代码:

ngOnInit(){
        this.reviewForm = this.fb.group({            
            'controlArray': new FormArray([])
        });        
        this.showDefaultForm();                     
    }

addForm() {
    (<FormArray>this.reviewForm.get('controlArray')).push(this.fb.group({
        controlType: control.controlType,
        options: control.options,

    }));
}

我收到TypeError:this.validator不是这个函数。我认为它是由于将一个字符串数组(即control.options)指定为FormControl的值。 如果我使它成为FormArray然后此错误解决,但我有问题在模板中处理它作为FormArray。请告诉我是否不使用FormArray,我可以将字符串数组作为值分配给FormControl吗?如果不是那么如何在模板中将其作为FormArray处理。感谢

1 个答案:

答案 0 :(得分:3)

最后我解决了,答案是肯定的。 FormControl的值可以是数组。但为此,您必须将值括在方括号[]中。此外,对于简单值(非数组),这些方括号是可选的,这意味着您可以将值括在方括号内或不方括号内。

代码说明:

(<FormArray>this.reviewForm.get('controlArray')).push(this.fb.group({
        controlType: control.controlType,
        options: [control.options], //previously I was not using square brackets with options value i.e. options: control.options which was wrong.

    }));