FormArrayと動的フィールド
実行時にフォームコントロールを追加・削除します
「FormArrayと動的フィールド」はCoddyKit上の無料Angular Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAngular Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Angular Academyコースには全4レッスンが含まれています。
動的なフィールド集合
電話番号や明細項目のリストなど、フィールド数が変動するフォームがあります。FormArrayは、順序を持ち、増減可能なコントロールのコレクションを管理します。
FormArrayの作成
FormArrayは、コントロールまたはグループの配列を保持します。
const phones = new FormArray([
new FormControl(''),
new FormControl('')
]);FormGroup内での使用
配列を親グループに組み込むと、フォーム全体の値の一部になります。
const form = new FormGroup({
name: new FormControl(''),
phones: new FormArray<FormControl<string>>([])
});コントロールの追加
pushを呼び出すと、新しいコントロールを動的に追加できます。
addPhone() {
this.phones.push(new FormControl('', { nonNullable: true }));
}コントロールの削除
removeAt(index)を使うと、指定したコントロールを削除できます。
removePhone(i: number) {
this.phones.removeAt(i);
}@forでのレンダリング
テンプレート内で配列のコントロールを反復処理し、formControlNameを使ってそれぞれをインデックスでバインドします。
<div formArrayName="phones">
@for (ctrl of phones.controls; track $index) {
<input [formControlName]="$index" />
}
</div>formArrayNameディレクティブ
formArrayNameはテンプレートブロックを配列に関連付け、内側のformControlNameは数値のインデックスを使用します。
グループの配列
より複雑な項目には、配列にFormGroupを格納します。たとえば、それぞれの連絡先に名前と電話番号を持たせる場合です。
const contacts = new FormArray<FormGroup>([]);
contacts.push(new FormGroup({
label: new FormControl(''),
number: new FormControl('')
}));グループ項目のレンダリング
配列内の各グループには、インデックスとともにformGroupNameを使用します。
@for (g of contacts.controls; track $index) {
<div [formGroupName]="$index">
<input formControlName="label" />
<input formControlName="number" />
</div>
}値の読み取り
配列の値は、現在のコントロールを反映した順序付きの通常の配列です。
const list = this.phones.value; // string[]配列のクリア
clear()はすべてのコントロールを一度に削除します。動的なセクションをリセットするときに便利です。
this.phones.clear();クイックチェック
FormArrayについての理解度を確認します。
まとめ
FormArrayは、コントロールまたはグループの動的で順序付きのコレクションを管理し、push、removeAt、clearを使って操作することを学びました。レンダリングにはformArrayNameと、インデックス付きのformControlName/formGroupNameを使用します。
よくある質問
「FormArrayと動的フィールド」レッスンは無料ですか?
はい。「FormArrayと動的フィールド」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Angular Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Angular Academyコースには全4レッスンが含まれています。
「FormArrayと動的フィールド」で何を学びますか?
実行時にフォームコントロールを追加・削除します ブラウザで直接実行するハンズオンコードでAngular Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Angular Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAngular Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「FormArrayと動的フィールド」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAngular Academyレッスンでコードを書いて実行できますか?
はい。すべてのAngular Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 型付きリアクティブフォーム
- FormArrayと動的フィールド
- 非同期バリデーター
- FormBuilderのパターン