我需要一些帮助来强制在控制器事件之前从指令执行事件。我的情况是下一个:
我在控制器中有一个带有搜索方法的输入:
<input type="text" name="searchText"
required
data-ng-model="searchText"
data-ng-enter="search(searchText)" />
以及一个用于全局注册keydown 13(ENTER键)的指令,该指令包含下一个代码:
$document.bind("keydown keypress", function(event) {
if (event.which === 13) {
//do something
}
}
如果将光标置于输入中并按Enter键,则在全局指令发生之前会触发ng-enter。有什么方法可以在控制器之前强制执行指令事件?
我尝试将优先级用于指令,但不是解决方案。
所有帮助将不胜感激。
问题在于事件使DOM沸腾了。该input
事件将始终在document
事件之前触发,因为该事件将始终冒泡。
如果希望首先触发文档事件,则可以指定希望它在捕获阶段运行(注意:如果IE8或更低版本,则不支持)。您可以在.addEventListener
函数的第三个参数中指定事件捕获:
function documentKeyEvent(event) {
if (event.which === 13) {
//do something
}
}
$document[0].addEventListener("keydown", documentKeyEvent, true);
$document[0].addEventListener("keypress", documentKeyEvent, true);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句