javascript - AngularJS 按键按键代码指令

标签 javascript angularjs keypress keycode

我正在尝试编写一个 AngularJS 指令来在按下 Escape 键时运行一个函数:

HTML

<input type="text" custom-keypress="consoleLog()">

JS

var app = angular.module('app', []);

app.controller('appCtrl', function($scope) {
  $scope.consoleLog = function () {
    console.log('works')
  }
});

app.directive('customKeypress', function () {
    return function (scope, element, attrs) {
        element.bind("keydown keypress", function (event) {
            if(event.which === 27) {
                scope.$apply(function (){
                    scope.$eval(attrs.ngEnter);
                });

                event.preventDefault();
            }
        });
    };
});

不幸的是,当我按 Escape 键时没有任何反应。

Here's my Plunker .

知道我做错了什么吗?

最佳答案

您在 $eval 调用中定位了错误的属性值。 fork 和固定 - http://plnkr.co/edit/0fsKoHAAgTvl4l2z8SfJ?p=preview

应该是:scope.$eval(attrs.customKeypress);

关于javascript - AngularJS 按键按键代码指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30581520/

相关文章:

函数之外的Javascript变量?

javascript - 网站前端使用backbone,后端使用nodejs

javascript - AngularAMD 在指令中加载模块(如下划线)

javascript - 使用 2 个不同的 href 和 CSS 定位重复 Angular ion-item

linux 上的 java keylistener

javascript - 如何在 JavaScript 中获取 int 形式的商和 float 形式的余数

javascript - Jquery toggleClass 切换的类,但不会多次运行动画

jquery - 如何在jquery fullcalendar中首先显示当前星期

Javascript 事件按键检查字符代码

c# - 仅允许 RadGridView 中特定列中的特定字母