定义和使用Vue.config.keyCodes时,不能使用camelCase属性名

时间:2017-03-22 15:55:36

标签: vue.js config vuejs2

定义和使用Vue.config.keyCodes

时无法使用camelCase属性名称

我正在尝试使用Vue.j的keyupv-on事件上配置keyCodes
我阅读了文档,发现Vue.config.keyCodes = {}是静态方法,用户可以将自定义名称设置为keyCodes。

问题1:camelCase属性名称似乎无效。

下面是没有camelCase的JSFiddle,它运行良好。

  的 Link : without camelCase config

下面是带有camelCase的JSFiddle,它不起作用。

  的 Link : with camelCase config

在Vue.js文档中有使用camelCase的示例 我认为camelCase也应该工作。为什么它不起作用?

问题2:绑定多个keyCodes

我想在输入Alert + cmd时输入enter
我尝试了@keyup.91.13@keyup.91&&13或keyCode配置,如

Vue.config.keyCodes = {
    hit: 91&&13
}

但它不起作用。我怎样才能正常工作?

3 个答案:

答案 0 :(得分:1)

问题1:

我相信这只是设计。我认为.call-alert可能会起作用,但事实并非如此。我认为修饰符仅限于所有小写字符。

问题2:

由于command是一个修饰键,你可以这样做:

@keyup.ctrl.enter="dance"

您可以在此处找到更多详细信息: https://vuejs.org/v2/guide/events.html#Modifier-Keys

答案 1 :(得分:1)

问题2:绑定多个keyCodes

最好使用“.meta”因为“keyup = 91”不适用于Opera(其“keyup = 219”而不是91)。

@keyup.meta.enter="yourMethod"

(但我不知道为什么这对我在Ubuntu上不起作用)

  

注意:在Macintosh键盘上,meta是命令键(⌘)。在Windows上   键盘,meta是windows键(⊞)。在Sun Microsystems键盘上,   meta标记为实心菱形(◆)。在某些键盘上,   特别是MIT和Lisp机器键盘和后继者,如   骑士键盘,太空军校学生键盘,元标有“META”。上   Symbolics键盘,meta标记为“META”或“Meta”。

答案 2 :(得分:0)

问题1:

作为Vue文档,您应该使用带双引号的kebab-case。 https://vuejs.org/v2/api/#keyCodes

Vue.config.keyCodes = {
  v: 86,
  f1: 112,

  // camelCase won`t work
  mediaPlayPause: 179,
  // instead you can use kebab-case with double quotation marks
  "media-play-pause": 179,

  up: [38, 87]
}