2017-05-02 11 views
0

私は、2つのコンポーネントをリンクする検証を行う最良の方法を見つけようとしています。angular2形式の入力間の検証依存関係はありますか?

2つのチェックボックスがあります。 2番目の入力が必要なのは、最初の入力がチェックされている場合のみです。

私はちょうど検証から始めて、正確に私がこれを行う方法を確信していません。

モデルドリブンフォームを使用している場合は、component.tsファイルの検証ルールを変更するだけで済みます。

これはこれを処理する良い方法でしょうか?あるいは、そのようなケースを扱うヘルパーはいますか?

+0

カスタム検証ルールを定義することができます(https://angular.io/docs/ts/latest/cookbook/form-validation.html#!#custom 2つのチェックボックスにバインドされている両方のモデルフィールドについて、有効化されます。したがって、現在の状態に基づいてモデルが有効かどうかを判断できます。別のオプションは、ControlValueAccessorインターフェイス(https://angular.io/docs/ts/latest/api/forms/index/ControlValueAccessor-interface.html)を実装する両方のチェックボックスを含むカスタムコンポーネントを定義することですが、これは過剰です私見では。それは実際にあなたの特定のシナリオに依存します。 –

答えて

0

という名前の変数を宣言し、それに初期値falseを割り当てます。

let checbox1checked:boolean = false;

ユーザーがチェックボックス1をオンにした場合、checbox1checkedにtrueの値を割り当てます。

checkbox2の検証中にchecbox1checkedがtrueであるかどうかを確認し、yesの場合はcheckbox2のエラーメッセージを表示し、checkbox2エラーメッセージを無視しない場合は表示します。

0

あなたはこのを探していることがある:

<input type="checkbox2" [attr.required]="checked1"> 
<input type="checkbox1" [(ngModel)]="checked1"> 
関連する問題