EDIT: zobaczyć drugą odpowiedź poniżej od maklemenz który odnosi się do nowej wbudowanej ng-keyup dyrektywa
Mogłeś użyć angular-ui library:
Z kątowym-ui, można po prostu wykonaj następujące czynności:
<input ui-event="{keyup: 'myFn($event)'}"
Jeśli nie chcesz używać innej biblioteki, najskuteczniejszym i najprostszym sposobem jest:
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: Jeśli chcesz, aby wykryć który klawisz został naciśnięty, masz dwie podstawowe opcje naprawdę. Możesz dodać atrybut do dyrektywy, aby obsłużyć dozwolone klucze w dyrektywie, lub możesz przekazać klawisz wciśnięty do kontrolera. Ogólnie zalecam, aby dyrektywa zajmowała się kluczową metodą.
Oto przykład z obu sposobów: http://jsfiddle.net/bYUa3/2
Dzięki za odpowiedź. Jak uzyskać klucz, który został naciśnięty za pomocą rozwiązania nie-kątowego? – fadedbee
Dodałem coś do głównego posta o wykryciu klucza. –
To są właśnie to, czego potrzebuję. Dzięki za pomoc, naprawdę zaczynam kochać używając AngularJS. Szkoda, że nie wyrzucamy rocznego doświadczenia z używania KnockoutJS, ale AngularJS wydaje się być o wiele łatwiejszy w utrzymaniu i dostępny dla nowych deweloperów. – fadedbee