瀏覽代碼

support key modifiers

Evan You 10 年之前
父節點
當前提交
7f7132ee0b
共有 1 個文件被更改,包括 20 次插入1 次删除
  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;`
+  }
 }