バリデーションを行うモデル駆動型のカスタムバリデータがあります。モデルとテンプレートベースコントローラで同じバリデータを使用する方法
テンプレート -
<form [formGroup] = "myForm" (ngSubmit) = "save(myForm.value)">
<div>
<label>Name</label>
<input type="text" formControlName="name">
</div>
<p *ngIf="myForm.controls.name?.errors">This has to be rahulsingh!</p>
<button type = "submit" > Submit</button>
</form>
コンポーネント -
this.myForm = this.fb.group({
name: ['', [this.validateName]]
});
validateName(c: FormControl) {
return (c.value === 'rahulSingh') ? null : {
notCorrect: true
};
}
これは、モデル駆動型フォーム
しかしドリブンテンプレートのこの同じ検証機能を使用する方法私は、次のいのために働きますこのリンクhttp://blog.thoughtram.io/angular/2016/03/21/template-driven-forms-in-angular-2.html
しかし、私はこの関数を両方のフォームに対してグローバルにする方法を理解することはできませんし、指示として使用します。私はいつもこれを達成しようとする間違ったエラーを得ることに終わります。
はまた一つ奇妙なことは、私がしようとすると、私のテンプレートである
<p *ngIf="myForm.hasErrors('notCorrect')">This has to be rahulsingh!</p>
私は未定義のプロパティ「hasError」を読み取ることができません取得します。
私も同じ疑問があります –