异步验证器抛出预期验证器以返回Promise或Observable
问题描述:
我试图用密码值确认密码。我按照异步验证器标准完成了。但我想知道它不起作用,并抛出以下错误。请告诉任何人如何解决这个错误。异步验证器抛出预期验证器以返回Promise或Observable
预期验证器返回Promise或Observable。
这是我的代码。
呼叫校验:
cPass: ['', Validators.compose([
Validators.required,
Validators.maxLength(32),
Validators.minLength(10)
]),
this.validPassword.bind(this)
]
自定义验证功能可按:
validPassword(control: AbstractControl) {
const isEqual = Observable.of(this.password == control.value);
return isEqual ? { valid : true } : null;
}
答
错误本身就说明:
预期验证返回承诺或观察到。
您在function
中返回object|null
。
只是将其更改为:
validPassword(control: AbstractControl) {
return observableOf('12345678910' === control.value).pipe(
map(result => result ? { invalid: true } : null)
);
}