ng-keydown不起作用

时间:2013-10-01 10:17:37

标签: angularjs keydown

我尝试将箭头keydown事件绑定到文档,但它在角度不起作用。 代码:

function CubeCtrl($scope, $locale) {

$scope.click = function(){
    alert("click")
}
$scope.keydown = function(){
    alert("keydown")
}

}

HTML:

<body ng-app ng-controller="CubeCtrl" ng-click="click()" ng-keydown="keydown()">

这里是jsfiddle

2 个答案:

答案 0 :(得分:1)

这可能是Angular版本问题。

您可以选择此解决方案:UI Utils

或者最好的方法是为此事件编写自己的指令:

<强>指令:

   var mod = angular.module('mydirectives');
mod.directive('ngKeydown', function() {
    return {
        restrict: 'A',
        link: function(scope, elem, attrs) {
             // this next line will convert the string
             // function name into an actual function
             var functionToCall = scope.$eval(attrs.ngKeydown);
             elem.on('keydown', function(e){
                  // on the keydown event, call my function
                  // and pass it the keycode of the key
                  // that was pressed
                  // ex: if ENTER was pressed, e.which == 13
                  functionToCall(e.which);
             });
        }
    };
});

<强> HTML

<input type="text" ng-keydown="onKeydown">

答案 1 :(得分:0)

版本1.1.1不支持ngKeydown指令。您应该使用至少版本1.1.2来使用此指令。