如何在AngularJS中检测onKeyUp?
我正在寻找一个类似于ngChange的'ngOnkeyup‘指令,但我找不到任何合适的指令。
如果没有这样的指令,有没有一种干净的方法可以从浏览器原生onkeyup事件调用控制器?
发布于 2013-08-30 21:57:54
对于现在正在寻找该功能的每个人,请使用官方的ng-keyup指令:
<input type="text" ng-keyup="{expression}" />
发布于 2012-06-30 02:37:20
如果默认指令还不够,则必须创建自定义指令。像这样的东西,可能是吧?
<!doctype html>
<html lang="en" ng-app="app">
<body ng-controller="ctrl">
<input ng-onkeyup="keyup()"/>
<script src="js/lib/angular-1.0.0.min.js"></script>
<script>
angular.module('app', []).directive('ngOnkeyup', function() {
return {
restrict: 'A',
scope: {
func: '&ngOnkeyup'
},
link: function( scope, elem, attrs ) {
elem.bind('keyup', scope.func);
}
};
});
function ctrl($scope) {
$scope.keyup = function() {
alert('keyup fired');
};
}
</script>
</body>
</html>
发布于 2013-04-09 08:34:46
除了已经提到的事件绑定器之外,您现在还可以从Angular UI使用这些方便的ui-key*指令:
<textarea
ui-keypress="{13:'keypressCallback($event)'}">
</textarea>
<textarea
ui-keydown="{'enter alt-space':'keypressCallback($event)'}">
</textarea>
<textarea
ui-keyup="{'enter':'keypressCallback($event)'}">
</textarea>
<script>
$scope.keypressCallback = function($event) {
alert('Voila!');
$event.preventDefault();
};
</script>
https://stackoverflow.com/questions/11264188
复制相似问题