EDIT : voir la deuxième réponse ci-dessous de maklemenz qui fait référence à la nouvelle directive intégrée ng-keyup.
Vous pourriez utiliser le bibliothèque angular-ui :
Avec angular-ui, vous pouvez simplement faire
<input ui-event="{keyup: 'myFn($event)'}"
Si vous ne voulez pas utiliser une autre bibliothèque, le moyen le plus efficace et le plus simple est de le faire :
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">
Modifier : Si vous vouliez détecter quelle touche a été pressée, vous avez deux options de base en fait. Vous pouvez ajouter un attribut à la directive pour gérer les touches autorisées dans la directive, ou vous pouvez passer la touche pressée à votre contrôleur. Je recommande généralement que la directive gère la méthode de la touche.
Voici un exemple des deux façons de procéder : http://jsfiddle.net/bYUa3/2