在AngularJS中,如何在div元素上使用ngKeyup而不是input元素?

10

我已经用一些示例代码设置了一个 Plunker:http://plnkr.co/edit/upExTHzpkwtZ45mdikFr?p=preview

简明的问题是:我正在尝试使用 AngularJS 的 ng-keyUp 指令。在文档中,我只看到它用于输入框上,尽管我想要捕获页面上任何地方的按键而不仅仅是在输入框内。就像这样:

// view

<div ng-keyup="keyPress($event)">
     // The bulk of my controller's view goes in here
</div>

// inside controller

$scope.keyPress = function(e){
     console.log(e);
}

请参考上面的 Plunker 示例。目前它完全不能工作,没有任何日志记录。我该如何让它正常运行?


我认为你应该使用ng-click: <div ng-click="keyPress($event)">,因为在你的页面上只需点击div即可。但也许我没有理解你的情况。 - lukpaw
2个回答

24

尝试让div元素获得焦点,或使用tabindex="1"属性


2
完美,tabindex="1" 让它工作了。但是当我使用它时,它周围有一个奇怪的 :focus 轮廓线,我通过更改 .container:focus {outline: 0;} 的 CSS 来解决了这个问题。 - JVG
2
这个方法对我有效,首先我必须点击div,然后才能检测到按键。我正在使用Django和模板。 - Anurag Rana

0

总有好老的香草咖啡脚本 '.'

document.onkeypress = (e) ->
  console.log String.fromCharCode(charCode)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接