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

iMa*_*kre 1 validation typescript angular

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

this.userForm.controls.username.setErrors({
  'exists': 'Username already exists'
});
Run Code Online (Sandbox Code Playgroud)

这完全取代了任何现有的错误。有没有办法将单个错误附加到动态 FormGroup 控件?

小智 5

control.setErrors({ ...(control.errors || {}), 'newError': 'text of the error' })
Run Code Online (Sandbox Code Playgroud)

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

control.errors || {}
Run Code Online (Sandbox Code Playgroud)

是对不可传播值的保护(例如,未定义或空值)