2016-03-20 7 views
4

Я работаю над проектом Angular2, в котором у меня есть список элементов, и нажатие любого элемента отображает его страницу с деталями, используя компонент детали товара. Я пытаюсь найти способ разрешить пользователям перемещаться по элементам с помощью клавиш со стрелками вправо и влево.Angular2 Навигация с помощью клавиш со стрелками

Итак, у меня есть список предметов, и когда, например, пользователь нажимает на первый элемент в списке, он показывает детали элемента, теперь я хочу, чтобы при нажатии пользователем клавиши со стрелкой вправо она автоматически загружала информацию о следующем в списке.

У меня есть два компонента ItemsListComponent и ItemDetailsComponent каждый со своим собственным маршрутом, ItemDetailsComponent имеет идентификатор параметра. И у меня есть список предметов, хранящихся в ItemsService.

У меня есть две кнопки в компоненте ItemDetails для отображения Следующий и предыдущий элементы привязываются к showNext (id) и showPrevious (id) на одном компоненте.

Все работает нормально, но я не могу связать событие KeyPress справа/слева со стрелками showNext (id) и showPrevious (id).

Я думал об одном подходе, который добавляет прослушиватель событий, используя addEventListener в документе, в конструкторе компонента, но это не кажется элегантным решением.

Любая помощь, связанная с этим, будет высоко оценена.

PS: Я не использую JQuery так ищет чистый раствор Angular2

+0

Пожалуйста, добавьте код, который демонстрирует, что вы пытаетесь выполнить. –

+0

Спасибо Гюнтеру за комментарий, с некоторым ударом и пробной версией, я нашел ответ, все, что нужно было, это на главном div элемента ItemDetailsComponent: (window: keydown) = "onKey ($ event)" –

ответ

11

С некоторым хитом и судом, я нашел ответ, все это было нужно, это на моей основной DIV в ItemDetailsComponent:

(window: keydown) = "onKey ($ event)"

+0

Я нашел просто (keydown) = "onKey ($ event)", похоже, тоже работает – kernowcode

+0

Отлично! Это тоже работает. –

+1

Кроме того, если у вас есть какие-либо проверки, лучше использовать клавиатуру вместо этого, потому что валидация будет работать с правильным выбранным параметром, а не с предыдущим, как при использовании keydown. Тем не менее, не считается и проверенным нажатием клавиши. – kernowcode

Смежные вопросы