如何在AngularJS中检测onKeyUp?
我正在寻找一个“ngOnkeyup”指令,类似于ngChange,但我找不到任何合适的。
如果没有这样的指令,是否有一个干净的方式从浏览器本地onkeyup事件调用控制器?
编辑:参见下面从maklemenz的第二个答案,这是指新的内置的ng-keyup指令
你可以使用angular-ui library:
有了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); }); }; });
HTML:
<input on-keyup="count = count + 1">
编辑:如果你想检测哪个键被按下,你有两个基本的选择真的。您可以向指令中添加一个属性来处理指令中允许的键,也可以将按键传递给控制器。我一般会推荐指令处理关键方法。
这里有两种方法的例子:http://jsfiddle.net/bYUa3/2