diff --git a/src/compiler/codegen/events.js b/src/compiler/codegen/events.js index 3aeb5a84..dee1330b 100644 --- a/src/compiler/codegen/events.js +++ b/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;` + } }