Angular2:プロパティ 'controls'がタイプ 'AbstractControl'に存在しません。インデックスを介してformarray内のオブジェクトの.controlにアクセスするときのエラー

デコトニック:

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],
      })
    );
developer033:

以下のよう['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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ