2017-12-12 28 views
1

私はAngular Reactiveフォームに取り組んでいます。これは私のコンポーネントクラスコードです:FormControlの値を配列にできますか?

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はこれを持つ関数ではありません。私はFormControlに値として文字列配列(つまりcontrol.options)を代入していると思います。 FormArrayを作成すると、このエラーは解決しますが、テンプレートのFormArrayとして処理するのに問題があります。 FormArrayを使用しないかどうかを教えてください。FormControlに値として文字列配列を割り当てることはできますか?そうでなければ、テンプレートでFormArrayとしてどのように扱うか。ありがとう

答えて

1

最後に私はそれを解決し、答えははいです。 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. 

    })); 
関連する問題