按VueJs中的功能按键

Den*_*nov 4 javascript vue.js vue-component vue-strap vuejs2

在我的组件中我使用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>
Run Code Online (Sandbox Code Playgroud)

我想在打开模态时按下手柄按键,确保在按下esc时按下或关闭模态时提交模态.

我添加了自定义函数keyHandler,遗憾的是从未触发过.你能告诉我如何修复代码来处理该功能中的按键操作吗?或者什么时候更好的方式如何关闭和提交vue表带模式我将不胜感激的建议.谢谢.

Amr*_*man 9

您可以附加事件处理程序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
  }
})
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


rob*_*lem 9

最简单的方法

<input v-on:keyup.13="whatkey()" type="text"> <br>
Run Code Online (Sandbox Code Playgroud)

查找是否按下了 Enter 键,然后触发一个名为 Whatkey 的方法。