Angular FormControl:未触发异步验证程序以验证无效输入
我正在尝试使用承诺实现远程服务器验证程序,但是文本输入没有被触发 `app.component.html'Angular FormControl:未触发异步验证程序以验证无效输入,angular,angular-reactive-forms,Angular,Angular Reactive Forms,我正在尝试使用承诺实现远程服务器验证程序,但是文本输入没有被触发 `app.component.html' <form [formGroup]="myForm"> Foo: <input type="text" formControlName="foo"> <span *ngIf="!myForm.get('foo').valid">Not valid foo</span> </form> 'app.component.ts'
<form [formGroup]="myForm">
Foo: <input type="text" formControlName="foo">
<span *ngIf="!myForm.get('foo').valid">Not valid foo</span>
</form>
'app.component.ts'
ngOnInit() {
this.myForm = new FormGroup({
'foo': new FormControl(null, [Validators.required, this.validateAsync.bind(this)])
});
}
validateAsync(control: FormControl): Promise<any> | Observable<any> {
const promise = new Promise<any>((resolve) => {
//post the control.value and check for the response value: fooIsValid
if (fooIsValid)
resolve(null);
else
resolve({'FooRuleValidation': true});
});
return promise;
}
我做错了什么?我注意到它使required也不能工作。您需要将异步验证器函数作为第三个参数传递 试试这个:
this.myForm = new FormGroup({
'foo': new FormControl(null, [Validators.required],[this.validateAsync.bind(this)])
});