EDIT: vedi seconda risposta sotto da maklemenz che fa riferimento al nuovo built-in ng-keyup direttiva
È possibile utilizzare il angular-ui library:
Con angolare-ui, è possibile basta fare
<input ui-event="{keyup: 'myFn($event)'}"
Se non si desidera utilizzare un'altra libreria, il modo più efficiente e semplice per farlo è:
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">
Edit: Se si voleva rilevare quale tasto è stato premuto, si hanno due opzioni di base davvero. È possibile aggiungere un attributo alla direttiva per gestire le chiavi consentite all'interno della direttiva, oppure è possibile passare il tasto premuto al controller. In genere raccomando che la direttiva gestisca il metodo chiave.
Ecco un esempio di entrambi i modi: http://jsfiddle.net/bYUa3/2
fonte
2012-06-29 18:41:07
Grazie per la risposta. Come posso ottenere quale tasto è stato premuto con la soluzione non angolare-ui? – fadedbee
Ho aggiunto qualcosa al post principale sul rilevamento della chiave. –
Questi sono proprio ciò di cui ho bisogno. Grazie per il tuo aiuto, sto davvero iniziando ad amare usando AngularJS. È brutto buttare via l'esperienza di un anno di utilizzo di KnockoutJS, ma AngularJS sembra essere molto più mantenibile e accessibile per i nuovi sviluppatori. – fadedbee