フォームにバリデーションを追加することは、ユーザーが有効なデータを入力することを保証するために重要です。シグナルフォームは、form() 関数に渡すスキーマ関数内でバリデーターを使用します。
このアクティビティでは、次の方法を学びます:
- 組み込みバリデーターをインポート
- フォームのスキーマ関数を定義
- カスタムエラーメッセージを使用して特定のフィールドにバリデーターを適用
バリデーションを追加しましょう!
-
バリデーターをインポート
@angular/forms/signalsからrequiredとemailバリデーターをインポートします:import {form, Field, required, email} from '@angular/forms/signals'; -
フォームにスキーマ関数を追加
form()呼び出しを更新して、2番目のパラメータとしてスキーマ関数を含めます。スキーマ関数は、各フィールドにアクセスできるfieldPathパラメータを受け取ります:loginForm = form(this.loginModel, (fieldPath) => { // Validators will go here}); -
emailフィールドにバリデーションを追加
スキーマ関数内で、emailフィールドのバリデーションを追加します。
required()とemail()の両方のバリデーターを使用します:loginForm = form(this.loginModel, (fieldPath) => { required(fieldPath.email, {message: 'Email is required'}); email(fieldPath.email, {message: 'Enter a valid email address'});});messageオプションは、ユーザーにカスタムエラーメッセージを提供します。 -
passwordフィールドにバリデーションを追加
required()バリデーターを使用して、passwordフィールドのバリデーションを追加します:loginForm = form(this.loginModel, (fieldPath) => { required(fieldPath.email, {message: 'Email is required'}); email(fieldPath.email, {message: 'Enter a valid email address'}); required(fieldPath.password, {message: 'Password is required'});});
完璧! フォームにバリデーションを追加しました。バリデーターは、ユーザーがフォームと対話すると自動的に実行されます。バリデーションが失敗すると、フィールドの状態がエラーを反映します。
次に、テンプレートでバリデーションエラーを表示する方法を学びます!