当前位置: 首页 > 知识库问答 >
问题:

如何在AngularJS中检测onKeyUp?

熊锐进
2023-03-14

如何在AngularJS中检测onKeyUp?

我正在寻找一个'ngOnkeyup'指令,类似于ngChange,但我找不到任何合适的。

如果没有这样的指令,是否有一种干净的方法可以从浏览器本机onkeyup事件调用控制器?

共有3个答案

麻鹏鹍
2023-03-14

如果默认指令不够,则必须创建自定义指令。可能是这样的吧?

<!doctype html>
<html lang="en" ng-app="app">
  <body ng-controller="ctrl">
    <input ng-onkeyup="keyup()"/>
    <script src="js/lib/angular-1.0.0.min.js"></script>
    <script>
      angular.module('app', []).directive('ngOnkeyup', function() {
        return {
          restrict: 'A',
          scope: {
            func: '&ngOnkeyup'
          },
          link: function( scope, elem, attrs ) {
            elem.bind('keyup', scope.func);
          }
        };
      });

      function ctrl($scope) {
        $scope.keyup = function() {
          alert('keyup fired');
        };
      }
    </script>
  </body>
</html>
仉臻
2023-03-14

编辑:请参阅下面来自maklemenz的第二个答案,其中提到了新的内置ng keyup指令

您可以使用angular ui库:

使用角度用户界面,您可以

<input ui-event="{keyup: 'myFn($event)'}"

如果您不想使用另一个库,最有效和简单的方法是:

JS公司

myApp.directive('onKeyup', function() {
  return function(scope, elm, attrs) {
    elm.bind("keyup", function() {
      scope.$apply(attrs.onKeyup);
    });
  };
});

超文本标记语言:

<input on-keyup="count = count + 1">

编辑:如果您想检测按下了哪个键,您实际上有两个基本选项。您可以向指令添加一个属性来处理指令中允许的键,或者您可以将按下的键传递给您的控制器。我通常建议指令处理键方法。

以下是两种方式的示例:http://jsfiddle.net/bYUa3/2

杨豪
2023-03-14

对于今天寻找该功能的所有人,请使用官方ng keyup指令:

<input type="text" ng-keyup="{expression}" />
 类似资料:
  • 问题内容: 如何在AngularJS中检测onKeyUp? 我正在寻找类似于ngChange的’ngOnkeyup’指令,但是找不到合适的东西。 如果没有这样的指令,是否有一种从浏览器本地onkeyup事件调用控制器的干净方法? 问题答案: 编辑:请参阅下面的maklemenz的第二个答案,它引用了新的内置ng-keyup指令 您可以使用angular-ui库: 使用angular-ui,您可以

  • 问题内容: 我是angularjs的新手。如何在angularjs中检测到userAgent。可以在控制器中使用它吗?尝试了以下类似的方法,但是没有运气! 我需要专门检测IE9! 问题答案: 就像Eliran Malka询问的那样,为什么需要检查IE 9? 检测浏览器的品牌和版本通常是一种难闻的气味。通常,这意味着如果您需要JavaScript来检测特定版本的浏览器,则代码会有更大的问题。 在某些

  • 我是新的angularjs。我怎么能检测用户代理在angularjs。有可能在控制器中使用它吗?尝试了下面这样的东西,但没有运气! 我需要专门检测IE9!

  • 问题内容: 我正在使用Javascript命令:setInterval。我喜欢在用户离开页面时停止它。 该代码似乎运行良好:http : //jsfiddle.net/PQz5k/ 它检测用户何时离开页面。当用户单击链接以转到其他HTML页面或URL,或者用户重新加载页面时,它将执行Javascript代码。 但是,当我从一个AngularJS模板转到另一个模板时,它不起作用。例如,如果我在tem

  • 问题内容: 我尝试了一些方法来检测代码中的EOF,但仍然无法正常工作。我尝试使用BufferedReader,Scanner和char u001a标记EOF,但对我的代码仍然没有任何意义。这是我的最后一个代码: 该程序应该在到达EOF时停止运行,但是我不知道为什么,由于某些原因,它会继续运行并导致运行时错误。请帮忙。顺便说一句,我是新来的,如果对我的问题还不清楚,很抱歉,谢谢您:) 问题答案: 由

  • 我尝试了一些方法来检测我的代码中的EOF,但它仍然不起作用。我试过使用BufferedReader、Scanner和使用charu001a来标记EOF,但仍然对我的代码没有任何意义。这里是我的最后一段代码: 程序应该在已经到达EOF时停止,但我不知道为什么,由于某些原因,它继续运行并导致运行时错误。请帮帮忙。顺便说一下,我是新来的,如果我的问题不是很清楚,很抱歉不能理解,谢谢你之前:)