パスワードが一致しないと私の*ngIf
が表示されません。ここで反応形式のmdエラーのための角型カスタムバリデータが表示されない
<md-form-field>
<input mdInput placeholder="Repeat password" type="password" formControlName="repeat">
<md-error *ngIf="form.controls['repeat'].errors?.required">Field required</md-error>
<md-error *ngIf="form.errors?.matchingPasswords">passwords don't match</md-error>
</md-form-field>
は、単純な<span>
の代わり<md-error>
を使用して
constructor(private formBuilder: FormBuilder) {
this.form = this.formBuilder.group({
username:
['',
Validators.compose([
Validators.required,
Validators.minLength(3),
Validators.maxLength(30),
this.validateUsername,
this.validateUsernameAvailability
])
],
email:
['',
Validators.compose([
Validators.required,
Validators.maxLength(30),
this.validateEmail
])
],
password:
['',
Validators.compose([
Validators.required,
Validators.minLength(8),
Validators.maxLength(30),
this.validatePassword
])
],
repeat: ['',
Validators.compose([
Validators.required
])
]
}, {validator: this.matchingPasswords('password', 'repeat')});
}
matchingPasswords(password, repeat) {
return (group: FormGroup) => {
// Check if both fields are the same
if (group.controls[password].value === group.controls[repeat].value) {
return null; // Return as a match
} else {
return { 'matchingPasswords': true }; // Return as error: do not match
}
};
}
@EDIT はそれを修正するようだ私のコンストラクタです。
<span *ngIf="form.errors?.matchingPasswords">passwords don't match</span>
しかし、なぜ<md-error>
が表示されませんか?