具有去抖动和初始值的Angular AsyncValidator

时间:2018-03-15 09:51:16

标签: angular validation angular-forms

我在我的异步验证器中添加了一个debounce,在SO和Github上有像这样的解决方案(https://github.com/angular/angular/issues/13200)。

我遇到的问题是,如果表单在创建所有解决方案时已经有值,我发现它不起作用。

如果该字段为空,则该字段有效:

return control
    .valueChanges
    .debounceTime(400)
    .take(1)
    .distinctUntilChanged()
    .switchMap(value => this.systemService.getInstances({ name: value }))
    .map((data) => {
        if (CHECKISTRUE)) {
            return { nameAlreadyExists: true };
        } else {
            return null;
        }
    });

如果有初始值,则control.valueChange未定义。 我尝试修复此问题的是:

if (!control.valueChanges) {
    return Observable.of(null);
}
遗憾的是,状态保持待定状态。

所有谷歌搜索结果都会导致空字段的解决方案无效。

0 个答案:

没有答案