Angularjs 如果在文档中的任何位置按某个键,如何获取按键?
我尝试在任何时间和任何地方按enter键触发keypress事件,但我只能通过使用ng keypress在DOM元素中指定来实现这一点 我使用纯javascript和以下代码实现了这个结果:Angularjs 如果在文档中的任何位置按某个键,如何获取按键?,angularjs,Angularjs,我尝试在任何时间和任何地方按enter键触发keypress事件,但我只能通过使用ng keypress在DOM元素中指定来实现这一点 我使用纯javascript和以下代码实现了这个结果: document.onkeydown = function(e){ if(e.keyCode === 13){ //do something } } 但我不确定这是最好的方法,还是“角度方法”。如果您使用AngularJS,您应该在最外层的HTML元素上 例如: <bod
document.onkeydown = function(e){
if(e.keyCode === 13){
//do something
}
}
但我不确定这是最好的方法,还是“角度方法”。如果您使用AngularJS,您应该在最外层的HTML元素上 例如:
<body ng-keydown="myKeyDownFunction($event)"></body>
$scope.myKeyDownFunction = function($event) {
if($event.keycode === 13) {
// Do what you need to do
}
}
$scope.myKeyDownFunction=函数($event){
如果($event.keycode===13){
//做你需要做的事
}
}
调用嵌套控制器上的函数…
您可以在
标签上使用内置的ng按键
指令:
<body ng-keypress="enterKeyPressed($event)">
这会引发一个事件,可使用$scope
从控制器中拾取该事件:
$scope.$on("EnterKeyPressed", function() {
vm.incrementCounter();
});
演示
我想这个问题已经得到了回答 假设您使用Angular1,我认为可以找到答案 及
假设您使用的是Angular2,我认为可以找到答案我会将其包装在一个指令中,然后从那里开始,例如:
angular.module("myApp").directive("keypressDetector", function() {
return {
restrict: "A",
link: function(scope, elem, attrs) {
document.onkeydown = function(e){
if(e.keyCode === 13){
//do something
}
}
}
}
})
并使用它:
<body keypress-detector></body>
我的控制器在body标记内,当我将其放入first-in控制器内时,它不起作用。@William我已更新了我的答案,以反映您的控制器嵌套在body标记内(而不是上)。
<body keypress-detector></body>