addControl()在Angular 2中抛出“not a function”错误

时间:2017-09-29 00:01:52

标签: angular angular2-forms angular2-formbuilder

我使用Angular表单中的addControl()方法创建了一个函数,无论我如何尝试应用它或我应用它,我都会收到错误告诉我(something).addControl() is not a function

我在班级中定义了这些变量

demoA:string = 'name';
demoB:Array<string> = ['city', 'state'];
demoC:FormGroup<any>= {};

该功能如下所示

loadStuff(){
    let a = this.demoA;
    let b = this.demoB;
    let c = this.demoC;
    let ab:Array<string> = [];
    let cc:FormGroup= {};

    ab.push(a);
    b.forEach(bb => { ab.push(bb)});
    console.log(ab);

    cc.addControl(a, new FormControl('') );

    console.log(cc);

}

我在构造函数中调用它,如果这对你有任何影响。我原本试图在forEach()方法中实现它但是得到了同样的错误,这是我决定在一个变量上尝试它的时候。我已成功将FormsReactiveFormsModule导入应用模块,以便在其他方面正常工作。我没有在Angular的文档中遇到任何内容,说明你需要将任何其他内容导入到组件中,我做错了什么?

1 个答案:

答案 0 :(得分:2)

变量cc的类型为FormGroup,但定义为Object,您必须将其定义为FormGroup

let cc:FormGroup = new FormGroup({});

或使用FormBuilder

中的@angular/forms
constructor(private formBuilder: FormBuilder) { }
// ...
let cc: FormGroup = this.formBuilder.group({});