AngularJS: 如果只按下回车键

AngularJS: If only enter key pressed

我找到了一个例子,如果按下回车键如何触发一个事件,但问题是如果同时按下任何其他按钮,这个事件就会触发。特别是,这个问题与 textarea 有关,当 Shift + Enter 代表垂直扩展输入时。

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

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

所以问题实际上是如何在仅按下 Enter 键时捕获事件?

您可以简单地添加另一个检查,即是否使用 event.shiftKey 按下 shift 并执行相应操作。像

if(event.which === 13 && !event.shiftKey) {
scope.$apply(function (){
                    scope.$eval(attrs.ngEnter);
                });
...
}