Quellcode durchsuchen

support key modifiers

Evan You vor 10 Jahren
Ursprung
Commit
7f7132ee0b
1 geänderte Dateien mit 20 neuen und 1 gelöschten Zeilen
  1. 20 1
      src/compiler/codegen/events.js

+ 20 - 1
src/compiler/codegen/events.js

@@ -1,6 +1,20 @@
 import { isArray } from '../../util/index'
 
 const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/
+
+// keyCode aliases
+const keyCodes = {
+  esc: 27,
+  tab: 9,
+  enter: 13,
+  space: 32,
+  up: 38,
+  left: 37,
+  right: 39,
+  down: 40,
+  'delete': [8, 46]
+}
+
 const modifierCode = {
   stop: '$event.stopPropagation();',
   prevent: '$event.preventDefault();',
@@ -57,5 +71,10 @@ function genHandler (handler) {
 }
 
 function genKeyFilter (key) {
-
+  const code = keyCodes[key]
+  if (isArray(code)) {
+    return `if(${code.map(c => `$event.keyCode!==${c}`).join('&&')})return;`
+  } else {
+    return `if($event.keyCode!==${code})return;`
+  }
 }