首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在AngularJS中检测onKeyUp?

如何在AngularJS中检测onKeyUp?
EN

Stack Overflow用户
提问于 2012-06-29 23:02:23
回答 7查看 72.6K关注 0票数 48

如何在AngularJS中检测onKeyUp?

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

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

EN

回答 7

Stack Overflow用户

发布于 2013-08-30 21:57:54

对于现在正在寻找该功能的每个人,请使用官方的ng-keyup指令:

代码语言:javascript
复制
<input type="text" ng-keyup="{expression}" />
票数 77
EN

Stack Overflow用户

发布于 2012-06-30 02:37:20

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

代码语言:javascript
复制
<!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>
票数 7
EN

Stack Overflow用户

发布于 2013-04-09 08:34:46

除了已经提到的事件绑定器之外,您现在还可以从Angular UI使用这些方便的ui-key*指令:

代码语言:javascript
复制
<textarea
 ui-keypress="{13:'keypressCallback($event)'}">
</textarea>
<textarea
  ui-keydown="{'enter alt-space':'keypressCallback($event)'}">
</textarea>
<textarea
  ui-keyup="{'enter':'keypressCallback($event)'}">
</textarea>

<script>
$scope.keypressCallback = function($event) {
alert('Voila!');
$event.preventDefault();
};
</script>

http://angular-ui.github.io/#/directives-keypress

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11264188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档