当无效值新加载时,Angular 2+表单将通过验证

时间:2018-03-27 23:29:27

标签: angular angular-reactive-forms angular-forms

我有一系列表格,每五分钟自动保存一次。表单可以并且应该在此过程中保存无效的值(maxLength问题用于保存后端的问题)。

此外,用户可以随时提交表单,但为此,表单必须有效。

到目前为止,我已经完成了所有这些工作。

问题是,当自动保存后重新访问表单时,没有发生有效的用户提交,Angular会加载无效的值,但它会表明该表单即使某些加载的值不应通过其验证器,也是有效的。

我目前正在构建一些非常高级的表单,但非常是Angular表单验证的新功能。很抱歉这个noob问题,但在这种情况下我应该如何告诉Angular在无效的,新加载的字段上运行验证?

我已经开始闯入脏/原始,触摸/未触摸,等待等等,并对其进行处理,但不确定这些是否是我需要的或如何实现将整个表单标记为我需要的是没有副作用。

1 个答案:

答案 0 :(得分:1)

你正在跟踪脏/原始/触摸的东西。但是,FormGroup提供了一种检查方法:

afterFormGetsPopulated() {
  this.formGroup.updateValueAndValidity();
}

我认为这应该有效,但我现在无法进行现场测试。如果没有,则每个FormControl都有相同的方法:

afterFormGetsPopulated() {
  this.formGroup.controls.forEach(c => c.updateValueAndValidity());
}