在动态FormGroup中,我想以编程方式将错误附加到表单控件,但是我看到的添加错误的唯一方法是这样
this.userForm.controls.username.setErrors({
'exists': 'Username already exists'
});
完全替换所有现有错误。有什么方法可以将单个错误附加到动态FormGroup控件上?
答案 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
})