Завершение углового валидатора с отказов - PullRequest
0 голосов
/ 12 мая 2019

Я думал, что создание дебагованного валидатора в Angular тривиально, но это не так. Да, я знаю, что я могу создать пользовательский валидатор, но мне нужны стандартные валидаторы, но они были отклонены.

Что у меня есть

'username': new FormControl('', Validators.compose([Validators.required, Validators.minLength(3)]))

И что бы я хотел иметь

'username': new FormControl('', Validators.compose([ValidatorUtil.debounce(Validators.required), ValidatorUtil.debounce(Validators.minLength(3)])))

Так пытался это сделать, но у меня ничего не получилось: (

import {Validators} from "@angular/forms";
import {ValidatorFn} from "@angular/forms/src/directives/validators";

export class ValidatorUtil extends Validators {

static debounce(validator: (ValidatorFn | null | undefined)): ValidatorFn | null {
       return Observable.timer(1000).switchMap(()=>{
         return validator()
        .mapTo(null)
        .catch(err=>Observable.of({availability: true}));
       });
}
}

Какие-нибудь советы?

Код адаптирован из Как добавить время отката в асинхронный валидатор в angular 2?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...