首页 > 解决方案 > 带有 BehaviorSubject 的 Angular asyncValidator

问题描述

我正在创建 Angular 表单。在给定的示例中,您可以找到我的代码。我正在尝试使用异步验证器创建多组表单。案例很容易验证列表中是否存在数字。在实际情况下,此列表将从服务器获取,但出于演示的目的,我只添加了两个按钮。

如果我使用

{ asyncValidators: [DataDuplicatedAsyncFuncValidator(of([1, 11]))] }

传递数据。一切正常。如果我通过主题形式的可观察对象在其有效和无效时处于奇怪的状态:)

请帮我:

例子

标签: angularrxjsbehaviorsubjectreactive-forms

解决方案


原因是您的 id 来源从未完成。在一个事件之后完成它,您可以使用take(1)运算符

 return existing$.pipe(
      take(1),
      ...

推荐阅读