异步验证器抛出预期验证器以返回Promise或Observable

Kev*_*abu 10 angular2-forms angular-validation angular angular-reactive-forms

我试图用密码值确认密码.我按照Async验证器标准完成了.但我想知道它没有工作,并给我以下错误.请告诉任何人如何解决此错误.

返回Promise或Observable的预期验证器.

这是我的代码.

呼叫验证器:

cPass: ['', Validators.compose([
  Validators.required, 
  Validators.maxLength(32),
  Validators.minLength(10)
]),
  this.validPassword.bind(this)
]
Run Code Online (Sandbox Code Playgroud)

自定义验证功能:

validPassword(control: AbstractControl) {            
  const isEqual = Observable.of(this.password == control.value);
  return isEqual ? { valid : true } : null;         
}
Run Code Online (Sandbox Code Playgroud)

dev*_*033 18

错误说明了一切:

返回Promise或Observable的预期验证器.

你回来object|nullfunction.

只需将其更改为:

validPassword(control: AbstractControl) {
  return observableOf('12345678910' === control.value).pipe(
    map(result => result ? { invalid: true } : null)
  );
}
Run Code Online (Sandbox Code Playgroud)

STABKBLITZ DEMO