AngularJS - ng-keypress不适用于输入事件

Rak*_*ure 6 html javascript enter javascript-events angularjs

在我的项目中,ng-keypress不适用于来自所有地方的"输入密钥".从某些地方来看,它工作得非常好,但是从其他地方来看,它适用于除"输入密钥"之外的所有密钥.

这里我在ng-keypress上调用了一个test()方法.

<div class="actions">
    <div class="ui approve button red" data-ng-click="test()" id="confirm-yes" tabindex="8" ng-keypress="test()">Yes</div>
    <div class="ui cancel button" data-ng-click="test()" id="confirm-no" tabindex="7" ng-keypress="test()">Cancel</div>
</div>
Run Code Online (Sandbox Code Playgroud)

从测试方法来看,我只是展示了密钥代码.除了Enter之外,我可以正确地看到所有其他按键的键码.

$scope.test = function () { 
            alert('test called'+event.keyCode);
        }
Run Code Online (Sandbox Code Playgroud)

我已经阅读了很多StackOverflow文章,我确信它的语法是正确的但我对它的奇怪行为感到困惑.

知道为什么ng-keypress不能用于输入,它适用于所有其他键.

Rak*_*ure 2

最后我不得不用<div>标签替换<button>标签来解决这个问题。 Button tag完美地解决了这个问题。

<div class="actions">
    <button class="ui approve button red" data-ng-click="test()" id="confirm-yes" tabindex="8" ng-keypress="test()">Yes</button>
    <button class="ui cancel button" data-ng-click="test()" id="confirm-no" tabindex="7" ng-keypress="test()">Cancel</button>
</div> 
Run Code Online (Sandbox Code Playgroud)