设置表单控件错误 - 错误名称是一个变量

Set Form Control Error - Error Name is a Variable

    private static addFieldError(form: FormGroup, fieldName: string, errorName: string) {
         form.controls[fieldName].setErrors({errorName: true});
         form.controls[fieldName].markAsTouched();
    }

这里 setErrors 和我想象的不一样。这将为具有以下值的字段设置错误: {errorName: true}

我想使用函数 addFieldErrorerrorName: string 参数作为我添加到错误集合中的对象的键,而不是使用键 'errorName' itelf。

如何实现?

您需要做的就是将变量值输出为键名。

在您的代码中,对象键是 errorName as string

setErrors({errorName: true})

但是 errorName 对您来说是一个变量,需要将此变量的值设置为计算对象的键名。

setErrors({[errorName]: true})

这是一项 ES6 功能,您可以在其中获取从变量计算出的键名。

Object initializer

下检查 Computed property names