如何在AngularJS中检测onKeyUp?
我正在寻找一个'ngOnkeyup'指令,类似于ngChange,但我找不到任何合适的。
如果没有这样的指令,是否有一种干净的方法可以从浏览器本机onkeyup事件调用控制器?
如果默认指令不够,则必须创建自定义指令。可能是这样的吧?
<!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>
编辑:请参阅下面来自maklemenz的第二个答案,其中提到了新的内置ng keyup指令
您可以使用angular ui库:
使用角度用户界面,您可以
<input ui-event="{keyup: 'myFn($event)'}"
如果您不想使用另一个库,最有效和简单的方法是:
JS公司
myApp.directive('onKeyup', function() {
return function(scope, elm, attrs) {
elm.bind("keyup", function() {
scope.$apply(attrs.onKeyup);
});
};
});
超文本标记语言:
<input on-keyup="count = count + 1">
编辑:如果您想检测按下了哪个键,您实际上有两个基本选项。您可以向指令添加一个属性来处理指令中允许的键,或者您可以将按下的键传递给您的控制器。我通常建议指令处理键方法。
以下是两种方式的示例:http://jsfiddle.net/bYUa3/2
对于今天寻找该功能的所有人,请使用官方ng keyup指令:
<input type="text" ng-keyup="{expression}" />
问题内容: 如何在AngularJS中检测onKeyUp? 我正在寻找类似于ngChange的’ngOnkeyup’指令,但是找不到合适的东西。 如果没有这样的指令,是否有一种从浏览器本地onkeyup事件调用控制器的干净方法? 问题答案: 编辑:请参阅下面的maklemenz的第二个答案,它引用了新的内置ng-keyup指令 您可以使用angular-ui库: 使用angular-ui,您可以
问题内容: 我是angularjs的新手。如何在angularjs中检测到userAgent。可以在控制器中使用它吗?尝试了以下类似的方法,但是没有运气! 我需要专门检测IE9! 问题答案: 就像Eliran Malka询问的那样,为什么需要检查IE 9? 检测浏览器的品牌和版本通常是一种难闻的气味。通常,这意味着如果您需要JavaScript来检测特定版本的浏览器,则代码会有更大的问题。 在某些
我是新的angularjs。我怎么能检测用户代理在angularjs。有可能在控制器中使用它吗?尝试了下面这样的东西,但没有运气! 我需要专门检测IE9!
问题内容: 我正在使用Javascript命令:setInterval。我喜欢在用户离开页面时停止它。 该代码似乎运行良好:http : //jsfiddle.net/PQz5k/ 它检测用户何时离开页面。当用户单击链接以转到其他HTML页面或URL,或者用户重新加载页面时,它将执行Javascript代码。 但是,当我从一个AngularJS模板转到另一个模板时,它不起作用。例如,如果我在tem
问题内容: 我尝试了一些方法来检测代码中的EOF,但仍然无法正常工作。我尝试使用BufferedReader,Scanner和char u001a标记EOF,但对我的代码仍然没有任何意义。这是我的最后一个代码: 该程序应该在到达EOF时停止运行,但是我不知道为什么,由于某些原因,它会继续运行并导致运行时错误。请帮忙。顺便说一句,我是新来的,如果对我的问题还不清楚,很抱歉,谢谢您:) 问题答案: 由
我尝试了一些方法来检测我的代码中的EOF,但它仍然不起作用。我试过使用BufferedReader、Scanner和使用charu001a来标记EOF,但仍然对我的代码没有任何意义。这里是我的最后一段代码: 程序应该在已经到达EOF时停止,但我不知道为什么,由于某些原因,它继续运行并导致运行时错误。请帮帮忙。顺便说一下,我是新来的,如果我的问题不是很清楚,很抱歉不能理解,谢谢你之前:)