1
私は単純なアプリをテストしています。これらは私のファイルです:モデル駆動型 - バリデーター発行
home.component.ts
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';
@Component({
selector: 'app-home',
templateUrl: 'home.component.html'
})
export class HomeComponent {
form: FormGroup;
constructor(fb: FormBuilder) {
this.form = new FormGroup({
'firstName': new FormControl('', Validators.required),
'password': new FormControl('', Validators.minLength(5))
});
}
onSubmit() {
console.log('model-based form submitted');
console.log(this.form);
}
}
そして、これは、テンプレート・ファイルです:
<section class="sample-app-content">
<h1>Model-based Form Example:</h1>
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<div class="form-field">
<label>First Name:</label>
<input type="text" formControlName="firstName">
</div>
<div class="form-field">
<label>Password:</label>
<input type="text" formControlName="password">
</div>
<p>
<button type="submit" [disabled]="!form.valid">Submit</button>
</p>
</form>
しかし、私はfirstname
を書くときので、それは、うまくValidators
を認識していません送信ボタンを有効にすると、ファーストネームを空白にすると、入力は決して赤に変わりません。
私は間違っていますか?
EDITは:
私は検証が失敗した場合、角度バリデータがng-invalid
CSSクラスを設定し、ここで
http://plnkr.co/edit/cs6N0n?p=preview
私は理解しているかどうか見てみましょう。バリデータは、フォームの有効な状態のみを変更でき、その動作は変更できません。私はそれに取り組んでいる授業があると思った。ですから、色を変えたり、メッセージを表示したりするには、ngディレクティブを追加する必要がありますか?つまり、次のようになります: '[class] =" _isvalidform?class-ok:class-notok'? – FacundoGFlores
いいえ、あなたは角度を追加したり、自動的に 'ng-invalid'クラスを削除します。ブラウザはデフォルトではこのことが存在し、赤でなければならないことを知りません。角度はデフォルトのCSSを持っていません。 – Matthias247
もしあなたが望むのであれば、あなたは '[ngClass。 notvalid] '="!form.valid "とし、ng-invalidの代わりにnotvalidのCSSを定義します。 – Matthias247