我创建了一个新的指令来删除用户按下delt键盘,但它不起作用。我使用了angularjs指令:ng-keypress
指令:键盘.js
yemp.planner.app .directive('onKeyEnter', ['$parse', function($parse) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('keydown keypress', function(event) {
if (event.which === 46) {
var attrValue = $parse(attrs.onKeyEnter);
(typeof attrValue === 'function') ? attrValue(scope) : angular.noop();
event.deleteTimelineItem();
console.log("delete");
}
});
scope.$on('$destroy', function() {
element.unbind('keydown keypress')
})
}
};
}]);
<div class="time-lime-item-details" onKeyEnter >
<!-- when the user press delete this div should be deleted -->
</di>
,我将脚本行添加到HTML文件:
<script type="text/javascript" src="scripts/directives/keyboard.js"></script>
为了捕获键盘事件,应集中元素。默认情况下,DIV不能集中精力,但是您可以将tabindex="1"
属性设置为其,以便它可以捕获鼠标单击或调用focus()方法(基于您的方案)时的焦点。
如何将键盘重点放在DIV并将键盘事件处理程序附加到它上?
附加元素指令时,请使用dashdelimited符号on-key-enter
而不是onKeyEnter