我在引导程序模态中使用了反应形式。当触摸输入时,表单执行验证。但是,当我单击x关闭表单并触摸字段时,它执行验证,我看到错误消息,然后关闭了表单。我知道发生验证是因为无效时该字段被触摸并失去了焦点,但是我不希望它在关闭表单时执行验证。我不想使用dirty,因为在打开表单时需要进行验证。如何解决此问题? 这是我的领域:
<div *ngIf="(direction.dirty || direction.touched)">
<!-validation error here->
</div>
答案 0 :(得分:0)
我将为您的字段实现一个异步验证器,该验证器在使用setTimeout
或类似的延迟后进行验证。如果设置了该标志,还将依赖于一些阻止其验证的标志。
然后关闭按钮处理程序将为该字段启用该设置。
这样,我们确保在执行验证时在设置验证逻辑和标志之前执行关闭处理程序。
答案 1 :(得分:0)
由于您使用的是反应形式。请使用markAsUntouched方法在关闭模式时将控件设置为未触摸状态。
component.ts
onClose(modal){
modal.hide();
this.direction.markAsUntouched();
}