formarray内で別のformbuilderをプッシュしようとしていますが、コードを初期化するときに配列に項目がないため、コントロールがないため、エラーが発生します。エラーは、プロパティ 'controls'がタイプ 'AbstractControl'に存在しない後です。
(<FormArray>this.loanTypeForm.controls['frequency']).controls[index]
私はangular 2.0.0-beta.17を使用しています
let settingsForm: FormArray = new FormArray([]);
(<FormArray>this.loanTypeForm.controls['frequency']).push(
this.formBuilder.group({
'name': [value, Validators.required],
'settings': settingsForm,
})
);
(<FormArray>this.loanTypeForm.controls['frequency']).controls[index].controls['settings'].push(
this.formBuilder.group({
'term': [null, Validators.required],
'eir': [null, Validators.required],
})
);
以下のよう['controls']
に.controls
、の代わりに使用できます。
(<FormArray>this.loanTypeForm.controls['frequency']).controls[index]['controls']['settings'].push(...)
しかし、単純化して読みやすくするために、すべてを次のように変更することをお勧めします。
const control = this.loanTypeForm.get(`frequency.${index}.settings`) as FormArray;
control.push(...);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加