我正在寻找一种角度方式,将全局焦点事件附加到我网站上显示的所有输入字段,并将在未来出现。使用jQuery,我会使用live
方法,只需将事件处理程序放在index.html中。
我需要收听focus
和blur
事件,因为当移动Safari中的iOS 7上的虚拟键盘出现时会出现错误。收到活动后,我必须在底部重新定位导航栏(请参阅此处查看错误iOS 5 fixed positioning and virtual keyboard)。
那么,实现这一目标的最佳方法是什么,而不是一直向控制器注入一些东西?有没有“全球化的方式”?
答案 0 :(得分:2)
我会使用指令来捕捉像这样的焦点/模糊:
.directive('onFocusBlur',function() {
return {
restrict : 'A',
link : function($scope,$element,$attr) {
$element.bind('focus',function() {
$scope[$attr.onFocusBlur] = true;
});
$element.bind('blur',function() {
$scope[$attr.onFocusBlur] = false;
});
}
}
})
<!-- my focus/blur input -->
<input on-focus-blur="respoitionMyNav" />
<!-- my nav -->
<div ng-class="{ reposition-class : respoitionMyNav }">
</div>