Angular js 指令在任何元素上按下回车键时触发 "click" 事件

Angular js Directive to Fire "click" event on pressing enter key on ANY element

我需要使用指令使用回车键触发点击事件。我需要它作为指令,因为我想重用它。

Ex:一个 div 绑定了一些 onclick 事件,我将使用 tabindex="0" 将焦点放在 div 上,然后键盘输入 keydown 以触发点击事件。

这可能吗?我已经尝试了下面的指令代码,但它不起作用。

(function () {
'use strict';

angular
    .module('app.directives')
    .directive('enterKeyInput', enterKeyInput);

enterKeyInput.$inject = [];

/* @ngInject */
function enterKeyInput() {

    var directive = {
        restrict: 'AC',
        link: function (scope, element, attrs) {
            element.bind("keydown keypress", function (event) {
                if (event.keyCode === 13) {
                    element.click();
                }
            });
        }
    };

    return directive;
}

})();

自己找到了答案:D

(函数(){ 'use strict';

angular
    .module('app.directives')
    .directive('enterKeyInput', enterKeyInput);

enterKeyInput.$inject = [];

/* @ngInject */
function enterKeyInput() {

    return {
        restrict: 'AC',
        link: function (scope, element, attrs) {
            element.bind('keyup', function (e)  {
                if ([13].indexOf(e.which) !== -1)  {
                    e.preventDefault();
                    e.stopPropagation();
                    element.click();
                }
            });
        }
    };
}

})();