EDIT: véase el segundo resultado debajo de maklemenz que se refiere a la nueva incorporada en ng-keyup Directiva
Se podría utilizar el angular-ui library:
Con angular-ui, que pueda acaba de hacer
<input ui-event="{keyup: 'myFn($event)'}"
Si no desea utilizar otra biblioteca, la forma más eficiente y sencilla de hacer esto es:
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">
Editar: Si quería para detectar qué tecla se ha pulsado, tiene dos opciones básicas en realidad. Podría agregar un atributo a la directiva para manejar las claves permitidas dentro de la directiva, o podría pasar la tecla presionada a su controlador. En general, recomendaría que la directiva maneje el método clave.
He aquí un ejemplo de dos maneras: http://jsfiddle.net/bYUa3/2
Gracias por su respuesta. ¿Cómo obtengo la tecla presionada con su solución no angular? – fadedbee
Agregué algo al post principal sobre la detección de la clave. –
Esos son justo lo que necesito. Gracias por su ayuda, realmente estoy empezando a amar usar AngularJS. Se siente mal estar desperdiciando la experiencia de un año de usar KnockoutJS, pero AngularJS parece ser mucho más fácil de mantener y accesible para los nuevos desarrolladores. – fadedbee