             stop: true
             prevent: true
         keyup:
-            filtered: true
+            filterByKey: true
         keypress:
-            filtered: true
+            filterByKey: true
         keydown:
-            filtered: true
+            filterByKey: true

            if k is 'noscan'
                scan = false
                continue
            if not option.filtered
                continue

            filtered = true
            if keyModifiers[k]
                filterExt.push k
                continue

            if keyCodes[k]
                k = keyCodes[k]
            filter[k] = true

        (scope, element, expression, env) ->
            fn = scope.$compile expression,

                    scope.$scan()
                return

            for e in eventList
                element.addEventListener e, handler
            scope.$watch '$destroy', ->
                for e in eventList
                    element.removeEventListener e, handler
            return

    directiveOption =
