Я новичок в Angular и JavaScript в целом, я пытаюсь добавить сообщения, когда пользовательский ввод неверен, используя библиотеку Materialize (атрибут data-error). Поэтому мой компонент html выглядит так:Angular2 Forms Validation Сообщения об ошибках
<input
type="text"
id="username"
formControlName="username"
[class.valid]="username?.valid && username.dirty"
[class.invalid]="!username?.valid && username.dirty && !username.pending"
>
<label for="username"
data-error="ERROR_MESSAGE" // <-- this is what I need to work
>Username</label>
Я хочу изменить атрибут ошибки передачи данных в зависимости от присутствующей ошибки. Сейчас он будет печатать «ERROR_MESSAGE» при любой имеющейся ошибке. Я пытался писать функции и связывание его с [attr.data-ошибкой], как это:
displayUsernameErrorMessage() {
let message = '';
let usernameError = this.username.errors;
if(usernameError.pattern){
message = "Invalid Username"
console.log(usernameError);
}
else {
return null;
}
}
Я думаю, что я делаю очень плохую работу с этим, функцией журналы, как 10 раз в консоли и это плохое решение. Любые идеи о том, как заставить его работать лучше, очень ценятся!
EDIT 1: Дополнительная информация о том, что я хочу отображать разные сообщения в зависимости от ошибки. Поэтому, если я получаю сообщение об ошибке от Validator.pattern - я хочу, чтобы сообщение было чем-то вроде «Недопустимое имя пользователя» или если оно из Validators.required - «Пожалуйста, вставьте имя пользователя», что-то вроде этого.
У меня была идея, как это, но я хочу сделать его более динамичным, извините, мой первоначальный пост, вероятно, вводит вас в заблуждение, я хочу иметь разные сообщения в зависимости от ошибки, поэтому я хочу что-то вроде функции, которая будет выполняться, когда поле является недопустимым, и изменить метку ошибки. Так, например, если ошибка исходит от Validator.required - она скажет: «Пожалуйста, введите свое имя», но если это из Validators.minLength - он скажет «Введите не менее 3 символов» или что-то в этом роде – Shirohige
Я получаю ..;) .. –