2017-09-29 113 views
0

我用Angular forms創建了一個函數來使用addControl()方法,不管我如何嘗試應用它或在何處應用它,我得到一個錯誤告訴我(something).addControl() is not a functionaddControl()在Angular 2中拋出「不是函數」錯誤

我已經在我的課

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

變量cc的類型爲FormGroup,但它被定義爲Object,您必須將其定義爲FormGroup

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

或使用FormBuilder@angular/forms

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

奏效的感謝! – Optiq

相關問題