2
私は複数のコンポーネントにネストされた反応的なフォームを構築しようとしています。 は、私はどこにでもこのような何かを探していましたbeed:子要素にフィールドと値が入力される反応形式を作成しますか?
- 親コンポーネント:トップ1はは、親コンポーネント内にある
<form [formGroup]="form" novalidate>
- 子供の成分が含まれています。フォームの
formGroupName
に* ngForループが含まれています。 - grandChildrenのコンポーネントは、子コンポーネント内にあります。フィールドと値は(
formControlName
)です。
私は予想通り、親コンポーネントで
this.form.valueChanges
は、変更上のデータを仕事とreporteする必要があります。
私は各コンポーネントに必要なデータを取得したいと思います。私の場合、フィールドとデータはFirebaseから来ます。
このようなものは何も見つかりませんでした。古典的な住所配列を持つコンポーネントに組み込まれているフォームのみが存在します。フォームは常にParentComponentに組み込まれています。
質問:子供のコンポーネントにフィールドと値が入力されるフォームを作成することは可能ですか?
form.component.ts
<form [formGroup]="form" novalidate>
<form-fieldset [form]="form"></form-fieldset>
</form>
フォームfieldset.component.ts
<div [formGroup]="form">
<fieldset *ngFor="let group of groups$ | async">
<form-values [formGroupName]="group.name" [form]="form"></form-values>
</fieldset>
</div>
フォームvalues.component.ts
<ul [formGroup]="form">
<li *ngFor="let value of values$ | async">
<label>
<input type="checkbox" [formControlName]="value.$key">
{{value.$key}}
</label>
</li>
</ul>
私が理解していることから、これを行う唯一の方法はControlValueAccessorを使用することです。そして、私はそれを簡単にするために3の代わりに2つのコンポーネントにする必要があります。私はチェックボックスだけを使用することを知って、これに関する任意のアドバイスですか? – Tom