Задать ошибку управления формой - имя ошибки является переменной - PullRequest
0 голосов
/ 10 января 2020
    private static addFieldError(form: FormGroup, fieldName: string, errorName: string) {
         form.controls[fieldName].setErrors({errorName: true});
         form.controls[fieldName].markAsTouched();
    }

Здесь setErrors не так, как я ожидал. Это установит ошибку в поле со значением: {errorName: true}

While debugging in Chrome

Я хотел бы использовать параметр errorName: string функции addFieldError в качестве ключа объекта, который я добавляю в коллекцию ошибок, а не использую ключ 'errorName' сам по себе.

Как этого добиться?

1 Ответ

1 голос
/ 13 января 2020

Все, что вам нужно сделать, это вывести значение переменной в виде имени ключа.

В вашем коде ключ объекта errorName в виде строки

setErrors({errorName: true})

Но вместо этого errorName является переменной для вас, и значение этой переменной необходимо установить в качестве имени ключа для вычисляемого объекта.

setErrors({[errorName]: true})

Это функция ES6, в которой вы можете получить имя ключа, вычисленное из переменной.

Проверка Computed property names в Инициализатор объекта

...