【问题标题】:addControl() throwing "not a function" error in Angular 2addControl() 在 Angular 2 中抛出“不是函数”错误
【发布时间】:2018-03-10 20:00:25
【问题描述】:

我创建了一个函数来使用 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 的文档中没有遇到任何说明您需要将其他任何内容导入组件的内容,我做错了什么?

【问题讨论】:

    标签: angular angular2-forms angular2-formbuilder


    【解决方案1】:

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

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

    或使用@angular/forms中的FormBuilder

    constructor(private formBuilder: FormBuilder) { }
    // ...
    let cc: FormGroup = this.formBuilder.group({});
    

    【讨论】:

      猜你喜欢
      • 2021-05-01
      • 2022-01-10
      • 1970-01-01
      • 2017-06-01
      • 2017-04-23
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      相关资源
      最近更新 更多