次に、[field] ディレクティブを使用してフォームをテンプレートに接続する必要があります。これにより、フォームモデルと入力要素の間に双方向データバインディングが作成されます。
このレッスンでは、次の方法を学びます:
Fieldディレクティブをインポート[field]ディレクティブを使用してフォームフィールドを入力にバインド- テキスト入力とチェックボックスをフォームに接続
- テンプレートにフォームフィールド値を表示
テンプレートを配線しましょう!
-
Fieldディレクティブをインポート
@angular/forms/signalsからFieldディレクティブをインポートし、コンポーネントのimports配列に追加します:import { form, Field } from '@angular/forms/signals';@Component({ selector: 'app-root', templateUrl: './app.html', styleUrl: './app.css', imports: [Field], changeDetection: ChangeDetectionStrategy.OnPush,}) -
emailフィールドをバインド
テンプレートで、email入力に
[field]ディレクティブを追加します:<input type="email" [field]="loginForm.email" />loginForm.email式は、フォームからemailフィールドにアクセスします。 -
passwordフィールドをバインド
password入力に
[field]ディレクティブを追加します:<input type="password" [field]="loginForm.password" /> -
checkboxフィールドをバインド
checkbox入力に
[field]ディレクティブを追加します:<input type="checkbox" [field]="loginForm.rememberMe" /> -
フォーム値を表示
フォームの下に、現在のフォーム値を表示するデバッグセクションがあります。
.value()を使用して各フィールド値を表示します:<p>Email: {{ loginForm.email().value() }}</p><p>Password: {{ loginForm.password().value() ? '••••••••' : '(empty)' }}</p><p>Remember me: {{ loginForm.rememberMe().value() ? 'Yes' : 'No' }}</p>フォームフィールド値はシグナルであるため、入力すると表示される値が自動的に更新されます。
すばらしい! フォームをテンプレートに接続し、フォーム値を表示しました。[field] ディレクティブは双方向データバインディングを自動的に処理します - 入力すると、loginModel シグナルが更新され、表示される値が即座に更新されます。
次に、フォームにバリデーションを追加する方法を学びます!