如何延迟Angular 2+中的输入验证

时间:2018-04-05 20:11:47

标签: angular angular-directive angular-directive-link

在AngularJS中,您可以使用指令设置输入以使用

延迟验证
<script defer src="https://use.fontawesome.com/releases/v5.0.9/js/all.js"></script>

这样做:当输入改变时,在输入验证有效/无效之前给出500毫秒的延迟。

在Angular2 +中,这似乎更难。我想我可以通过observables听取更改并以这种方式更新验证,但是如何告诉初始输入不验证?

1 个答案:

答案 0 :(得分:2)

由于Angular 5.0可以更好地控制何时运行表单验证。您可以使用blur选项将验证配置为在submitupdateOn上运行。

  1. 反应表格示例:
  2. 将在窗体控件上运行验证器模糊:

    new FormControl(null, {
      updateOn: 'blur'
    });
    

    在提交表单后运行验证程序:

    new FormGroup({
      fistName: new FormControl(),
      lastName: new FormControl()
    }, { updateOn: 'submit' });
    
    1. 模板驱动表单:
    2. 将在窗体控件上运行验证器模糊:

      <input [(ngModel)]="firstName" [ngModelOptions]="{updateOn: 'blur'}">
      

      在提交表单后运行验证程序:     

      docs

      中的更多信息

      正如提及的评论中的某人,您也可以订阅表单值更改流,但如果您对延迟表单验证感兴趣,则应该查看updateOn属性。