FormControl: asyn c валидатор не запускается для проверки неверного ввода - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь реализовать средство проверки удаленного сервера, используя Promise, но ввод текста не инициируется.

`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'

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;
}

Что я делаю не так? Я заметил, что это делает необходимым не работать, а также.

1 Ответ

1 голос
/ 14 апреля 2020

Вам нужно передать asyn c функцию проверки в качестве третьего аргумента

Попробуйте это:

this.myForm = new FormGroup({
    'foo': new FormControl(null, [Validators.required],[this.validateAsync.bind(this)])
 }); 
...