当前位置: 首页 > 面试题库 >

如何在AngularJS中使用按键事件?

包德业
2023-03-14
问题内容

我想在下面的文本框中捕获Enter键按下事件。为了更清楚地说明,我使用a ng-repeat来填充tbody。这是HTML:

<td><input type="number" id="closeqty{{$index}}" class="pagination-right closefield" 
    data-ng-model="closeqtymodel" data-ng-change="change($index)" required placeholder="{{item.closeMeasure}}" /></td>

这是我的模块:

angular.module('components', ['ngResource']);

我正在使用一种资源来填充表,而我的控制器代码是:

function Ajaxy($scope, $resource) {
//controller which has resource to populate the table 
}

问题答案:

您需要添加directive,如下所示:

Javascript

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

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

HTML

<div ng-app="" ng-controller="MainCtrl">
    <input type="text" my-enter="doSomething()">    
</div>


 类似资料:
  • 我想在下面的文本框中捕捉enter键按下事件。为了更清楚地说明这一点,我使用了一个ng repeat来填充tbody。以下是HTML: 这是我的模块: 我正在使用资源填充表格,我的控制器代码是:

  • 我很难使用< code>onKeyPressed事件。我的应用程序中有一个< code>TextField,允许用户按下[ENTER]键来实现某项功能;然而,我也为场景指定了一个默认按钮。 虽然我可以在<code>文本字段</code>中成功触发按键所需的操作,但默认按钮的操作始终首先执行。当用户位于中时,我需要完全为按键使用事件。 请参阅以下MCVE: 所需的行为是能够在键入并按 Enter 键

  • 可能的重复: 跨浏览器方式,以便在按住键时自动获取重复的按键事件 我正在尝试用JavaScript/CSS/超文本标记语言创建一个简单的游戏,我正在使用jQuery(和一点下划线)来处理按键。玩家使用箭头键控制一个块。我在同时处理多个按键时遇到了问题。我有一个系统,其中闭包跟踪所有按下的箭头键。如果玩家按以下顺序按键,这个效果很好: 玩家按下(块向下移动) 玩家按下左(块对角线向下移动-左) 玩家

  • 问题内容: 我有angularJS 1.5.0-rc.2 我在互联网上发现可以使用该指令 但这不会禁用按钮。 我试过的 在我的控制器中,loaded定义为$ scope.loaded = false。 如何禁用按钮?谢谢 问题答案: 仅当表达式为 true时, 该按钮才会被禁用。

  • 问题内容: 我正在尝试做类似的事情: AngularJs部分: 但是不知何故,它向我展示了所有物品。如何筛选(键,值)? 问题答案: Angular 过滤器只能通过angular的API应用于数组,而不能应用于对象- “从数组中选择项的子集,并将其作为新数组返回。” 您在此处有两个选择: 1)移至数组或 -2)预过滤项目,如下所示: 并在控制器上: jsfiddle :http : //jsfid

  • 问题内容: 我有一个带有两个文本框,一个 选择 下拉菜单和一个 单选按钮 。当按下该键时,我想调用一个Javascript函数(用户定义),但是当我按下它时,将提交表单。 按下键时如何防止提交 ? 问题答案: if(characterCode == 13) { return false; // returning false will prevent the event from bubbling