【发布时间】:2013-03-20 05:52:20
【问题描述】:
我对 AngularJS 还是很陌生,但到目前为止我觉得它很合我的胃口。对于我当前的项目,我需要热键功能,并且很高兴看到它从 1.1.2 版本开始就受到支持。
ng-keydown 指令 (http://code.angularjs.org/1.1.3/docs/api/ng.directive:ngKeydown) 对输入类型按预期工作,但对任何其他上下文(如 div 等)都失败了。考虑到文档另有说明,这似乎很奇怪。
这里是一个最小的例子(http://jsfiddle.net/TdXWW/12/),分别是工作和不工作:
<input ng-keydown="keypress($event)">
<div ng-keydown="keypress($event)">
注意:我知道这可以用普通的 jQuery (http://www.mkyong.com/jquery/how-to-check-if-an-enter-key-is-pressed-with-jquery/) 处理,但我更喜欢了解如何在 AngularJS 中处理它。
【问题讨论】:
-
不是
contenteditable的div 在单击时不会触发焦点,因此没有活动元素可将keypress绑定到。使用 jQuery 或本机脚本尝试同样的事情有同样的问题。可以将事件绑定到文档并测试该目标不是输入。不确定您的用例是什么