Angular 当角形无效时,如何延迟错误消息,但在其生效后立即删除它们?

Angular 当角形无效时,如何延迟错误消息,但在其生效后立即删除它们?,angular,typescript,forms,validation,rxjs,Angular,Typescript,Forms,Validation,Rxjs,在我的表格中,有两个字段必须都是填充的或都是空的。当用户填充其中一个字段而另一个字段为空时,我希望延迟错误消息。最终,我会显示一个错误。有一个函数输出错误消息或空数组,以显示在html模板中。我正在使用RxJsdebounceTime操作符延迟错误消息 问题:在用户完成第二个字段后,消息将保持不变。一旦表格生效,我如何将其隐藏 示例代码 const form=formBuilder.group({ //具有验证的其他控件 治疗计数:未定义, controlCount:未定义, },{ valid

在我的表格中,有两个字段必须都是填充的或都是空的。当用户填充其中一个字段而另一个字段为空时,我希望延迟错误消息。最终,我会显示一个错误。有一个函数输出错误消息或空数组,以显示在html模板中。我正在使用RxJs
debounceTime
操作符延迟错误消息

问题:在用户完成第二个字段后,消息将保持不变。一旦表格生效,我如何将其隐藏

示例代码

const form=formBuilder.group({
//具有验证的其他控件
治疗计数:未定义,
controlCount:未定义,
},{
validators:this.validatorFunction()//必须同时填充这两个控件,或者不填充任何控件
} )
函数错误(处理:数字|未定义,控制:数字|未定义):字符串[]{
...
返回值是否有效?[]:['Oops!错误']}
const errorMessages$:Observable=form.valueChanges.pipe(
去BounceTime(2000年),
映射(value=>{返回错误(value.treatmentCount,value.ControlCount)},
))//这将显示在html模板中
我试图
合并
错误消息$
,在表单有效后立即触发
[]
,并显示“无错误”。然而,这实际上消除了显示错误的延迟。尝试
updateOn
blur并没有解决问题,用户体验更差


顺便说一句,我已经在互联网上搜索了一个答案,但遗憾的是,对于我的具体问题,答案不多。

你需要在去盎司时间之前检查错误,然后使用去盎司时间条件

大概是这样的:

const errorMessages$:Observable=form.valueChanges.pipe(
映射(value=>errors(value.treatmentCount,value.ControlCount)),
去盎司(错误=>错误?计时器(2000):空)

)//这显示在html模板中
您可以在stackblitz中共享此示例吗?分叉然后复制会更容易。