如何以编程方式将错误附加到FormGroup控件?

时间:2019-06-19 14:03:53

标签: angular typescript validation

在动态FormGroup中,我想以编程方式将错误附加到表单控件,但是我看到的添加错误的唯一方法是这样

this.userForm.controls.username.setErrors({
  'exists': 'Username already exists'
});

完全替换所有现有错误。有什么方法可以将单个错误附加到动态FormGroup控件上?

2 个答案:

答案 0 :(得分:3)

control.setErrors({ ...(control.errors || {}), 'newError': 'text of the error' })

您只需要获取以前的错误并将其传播到新的错误对象中即可。

control.errors || {}

是针对不可分散值(例如,未定义或null)的保护

答案 1 :(得分:0)

使用传播算子

const errors = this.userForm.controls.username.errors || {};
this.userForm.controls.username.setErrors({
  'exists': 'Username already exists', ...errors
})