Я знаю, что существует существующий пакет NPM для входных полей OTP, как упомянуто в этом посту переполнения стека, но мне нужно построить этот компонент с нуля для лучшей настройки и обучения. < /p>
Я работаю над входным компонентом Angular 8 OTP, где пользователи вводят 6-значный код. Поля ввода OTP динамически генерируются с использованием *ngfor, и я использую [значение] привязки и слушателей событий для обновления состояния компонента. Тем не менее, я сталкиваюсь с двумя проблемами:
Duplication :
[*] Когда я вводит число на первом входе (индекс 0), то же число появляется во втором входе
(индекс 1). < /li>
< /ul>
backspace поведение < /strong>: < /li>
< /ol>
Когда я нажимаю на второй ввод и нажимаю Backspace, значение при первом входе удаляется вместо второго. < /li>
< /ul>
код моего компонента
html (otp-nput.component.html): < /strong> < /p>
Я знаю, что существует существующий пакет NPM для входных полей OTP, как упомянуто в этом посту переполнения стека, но мне нужно построить этот компонент с нуля для лучшей настройки и обучения. < /p> Я работаю над входным компонентом Angular 8 OTP, где пользователи вводят 6-значный код. Поля ввода OTP динамически генерируются с использованием *ngfor, и я использую [значение] привязки и слушателей событий для обновления состояния компонента. Тем не менее, я сталкиваюсь с двумя проблемами: [list] [*] [b] Duplication [/b]: [/list]
[*] Когда я вводит число на первом входе (индекс 0), то же число появляется во втором входе (индекс 1). < /li> < /ul> [list] [b] backspace поведение < /strong>: < /li> < /ol>
Когда я нажимаю на второй ввод и нажимаю Backspace, значение при первом входе удаляется вместо второго. < /li> < /ul> код моего компонента html (otp-nput.component.html): < /strong> < /p> [code]
Каждый цифру следует вводить только в выбранное поле ввода, не затрагивая другие поля. [*]Нажатие Backspace должно сначала очистить текущее поле, а затем переместить фокус на предыдущее поле ввода. [b]Что у меня есть Пробовал:[/b] [list] [*]Заменил [value] на [(ngModel) [*]проверил на предмет неожиданных обновлений обнаружения изменений . [*]Я добавил журналы консоли и проверил, что обновления происходят в ожидаемом порядке. [*]Обработка обновлений состояния вручную в функции onInput[/list] [b]Вопросы[/b] [list] [*]Почему значение дублируется в следующем поле ввода при вводе? [*]Как предотвратить удаление с помощью Backspace значения предыдущего поля перед текущий? [/list]