Незрозуміла поведінка обробників подій Angular
Доброго дня. Вирішив вивчати Ангуляр, виникло питання. Зробив перемикач світлин, хочу щоб воно і кнопками крутило зображення і стрілками клавіатури. На скріншоті видно, як я повісив обробники на кнопки. Обробники по кліку нормально працюють. А обробники по натисканню стрілок працюють вельми дивно. Якщо не натискав мишкою кнопки то стрілки не працюють. Тобто якщо натиснув наприклад мишкою «Next product», то тоді права стрілка працюватиме, — можна прокрутити світлини до останньої вправо. Але в зворотній бік ліва стрілка не працюватиме, допоки не натиснеш мишкою на кнопку «Previous product». Якщо натиснеш мишкою кнопку то відповідно можна листати стрілкою вліво. Підкажіть будь-ласка в чому причина такої поведінки?

4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівСпробуй це:
@HostListener('window:keyup', ['$event']) handleKeyboardEvent(event: KeyboardEvent) { if (event.key === 'ArrowRight') { this.prevProductHandler(); } if (event.key === 'ArrowLeft') { this.nextProductHandler(); } }Коли ви клікаєте мишкою вона фокусується, й тоді діють keyboard обробники. Я думаю у вашому випадку замість обробників на кнопках, можна додати глобальний hostlistener на document, і в залежності від коду кнопки з івента викликати відповідні методи.
Ви не туди написали, тут обговорюють тільки проблеми з виїздом та бусики незламності.
Курс долара