I am trying to check old password match using async validator and error object is not returned even if the passwords don't match.
password-validator.ts
export class PasswordValidators{
static checkOldPassword(service: PasswordService){
return (control: AbstractControl) => {
return service.checkPasswordMatch(control.value).map(response => {
return response ? null : {wrongOldPassword: true};
});
}
}
password.service.ts
export class PasswordService {
actualOldPassword:string = 'abc123';
checkPasswordMatch(oldPassword: string){
return new Observable(observer => {
observer.next(this.actualOldPassword);
}).map( res => res!==oldPassword?0:1);
}
}
change-password.component.ts
constructor(fb: FormBuilder, service: PasswordService) {
this.form = fb.group({
oldPassword: ['', Validators.required,
PasswordValidators.checkOldPassword(service)],
});
}
The error object
{wrongOldPassword: true}
is never returned