2017-09-04 155 views
0

我有一個列表,簡單 - string[]。我爲該列表的每個項目生成複選框。然後,我創建FormControls:Angular - 將動態創建的FormControls添加到FormGroup中

this.list.map((item) => { 
    this.form.addControl(item, new FormControl(false, Validators.required)) 
}) 

但我想添加一個Validator控制選中的複選框的允許次數,所以我想我能做到這一點,如果我搬完FormControlsFormGroup,所以我嘗試類似:

constructor(private fb:FormBuilder) { 
     this.form = this.fb.group({ 
      input1Ctrl: ['', Validators.required], 
      input2Ctrl: ['',Validators.required], 
      checkboxGroup : new FormGroup({}) 
     })   
     this.list.map((item) => { 
      this.form.checkboxGroup.addControl(item, new FormControl(false, Validators.required)) 
     }) 

但是,這給:

提供的參數不匹配,通話對象的任何簽名。 屬性'checkboxGroup'在'FormGroup'類型上不存在。

我應該怎麼做?

+0

爲什麼'this.form.checkboxGroup'?這完全無效。這就是爲什麼你有錯誤。 –

+0

'this.form.get('checkboxGroup')。addControl(...)' – developer033

+0

謝謝@ developer033,但現在我得到了 - 屬性'addControl'不存在於'AbstractControl'類型中......這很奇怪,因爲我提供'checkboxGroup'的FormGroup類型... –

回答

1

訪問checkboxGroupthis.form.controls['checkboxGroup']

constructor(private fb:FormBuilder) { 
      this.form = this.fb.group({ 
       input1Ctrl: ['', Validators.required], 
       input2Ctrl: ['',Validators.required], 
       checkboxGroup : new FormGroup({}) 
      })   
      this.list.map((item) => { 
       this.form.controls['checkboxGroup'].addControl(item, new FormControl(false, Validators.required)) 
      }) 

編輯:創建plunker對於上述

https://plnkr.co/edit/nxo52y?p=preview

+0

Thx,但已經試過了.. –

+0

@ user8558489你的錯誤或輸出是什麼? –

+0

與使用點時相同 –

相關問題