- Красный, потому что для переменной задано значение false, с которого вы начинаете, и вы сказали, чтобы она отображала ошибку всякий раз, когда она ложна. И ваша логика, чтобы установить его в true, не сработает, пока вы что-то не введете. Если вы хотите избежать этого, у вас есть несколько вариантов:
** Либо измените свою логику, чтобы она отображала ошибку только при касании ввода (например,
[class.is-invalid]="name.dirty && !validNewChampName"
** или вы можете просто установить для переменной значение true по умолчанию:
export class Whatever {
validChampName = true;
}
для # 2, вам нужно получить значение модели, поэтому попробуйте:
попытка
(KeyDown) = "checkNewChampName (newChampName)"
Также рассмотрите возможность привязки к (ngModelChange) = "checkNewChampName ($ event)" . Таким образом, ваша логика будет работать не только при нажатии клавиши, но и при изменении значения.
Наконец, он не отключен, потому что он должен быть
userForm.invalid
(без формы после нее)