什么是AngularJS中jQuery模糊事件的替代品?

Hab*_*man 13 javascript jquery onblur angularjs

当使用angularjs在该组件外部单击时,我必须关闭任何打开的组件.模糊事件是否有角度指令?如果没有,我该怎么办?

Jes*_*uez 25

如果您不想使用angular-ui ui-event,您还可以创建一个小指令,直到下一个版本Angular发布.

app.directive('ngBlur', function() {
  return function( scope, elem, attrs ) {
    elem.bind('blur', function() {
      scope.$apply(attrs.ngBlur);
    });
  };
});
Run Code Online (Sandbox Code Playgroud)

只需将指令放在您需要的位置:

<input type="text" ng-model="foo" ng-blur="doFoo()" />
Run Code Online (Sandbox Code Playgroud)

基本上该指令的作用是绑定元素的blur事件(在我们的示例中是输入),然后当事件被触发时(我们离开输入)angular将应用指令中的内容.因此,在我们的情况下,doFoo()如果我们离开输入将被解雇.

Plunker:http ://plunker.co/edit/J4ZEB6ppvkiIvdW9J2VU?p=preview


JQu*_*uru 7

您可以使用Angular UI @ http://angular-ui.github.io/ui-utils/提供Blurs,Focus,Double-Clicks事件或将回调绑定到Angular Js本身不支持的任何事件

以下是模糊事件的示例之一:

<input ui-event="{ blur : 'blurCallback()' }">

<script>
$scope.blurCallback = function() {
alert('Goodbye');
};
</script>
Run Code Online (Sandbox Code Playgroud)