Обрабатывать нажатие клавиш по функциям в VueJs - PullRequest
0 голосов
/ 17 мая 2018

в моем компоненте я использую модальный VueStrap как это:

<template>
    <modal-window v-model="show" v-on:keyup="keyHandler($event)" @ok="submit()" @cancel="cancel()" @closed="close()" ... >
       ...
    </modal-window>
 ...
</template>
<script> 
    ...
    methods: {
       keyHandler (event) {
           console.log(event);
       }
    },...
</script>

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

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

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете прикрепить ваш обработчик событий к window, чтобы вы могли получать все ключевые события и действовать соответственно в зависимости от состояния вашего мода:

Vue.component('modal', {
  template: '<div>test modal</div>',
});

new Vue({
  el: "#app",
  created() {
    window.addEventListener('keydown', (e) => {
      if (e.key == 'Escape') {
        this.showModal = !this.showModal;
      }
    });
  },
  data: {
    showModal: true
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<div id="app">
  <modal v-show="showModal"></modal>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...