У меня есть поле ввода с двухсторонней привязкой, и я хочу изменить ввод данных пользователем в верхнем регистре и ограничить его 3 символами. Я делаю это в установщике переменной. Замена в верхнем регистре работает, если я пытаюсь сделать подстроку, она больше не обновляет значение поля, хотя свойство корректно обновляется.
Если я ввожу «abc», оно корректно заменяет его на «ABC», но как толькокогда я набираю более 3 символов, остальные символы не удаляются. Например, «abcde» отображает «ABCde» на входе. Пожалуйста, смотрите пример stackblitz: https://stackblitz.com/edit/angular-bpuh8a
<input type="text" id="airport" name="airport" [(ngModel)]="airport">
private _airport = '';
get airport(): string {
return this._airport;
}
set airport(value: string) {
this._airport = value.substring(0, 3).toUpperCase();
}
Я знаю, что могу ограничить длину поля, используя maxlength, и это работает, но я хочу понять, почему то, что я здесь делаю, не работает.
Я также пытался вызвать метод в ngModelChange, но результат тот же
Спасибо за вашу помощь.