Anglejsを使用してそのコンポーネントの外側をクリックすると、開いているコンポーネントを閉じる必要があります。ぼかしイベント用のangularディレクティブはありますか?ない場合は、どうすればよいですか?
Angle-uiの_ui-event
_を使用したくない場合は、次のバージョンのAngular
がリリースされるまで小さなディレクティブを作成することもできます。
_app.directive('ngBlur', function() {
return function( scope, elem, attrs ) {
elem.bind('blur', function() {
scope.$apply(attrs.ngBlur);
});
};
});
_
ディレクティブを必要な場所に配置するだけです。
_<input type="text" ng-model="foo" ng-blur="doFoo()" />
_
基本的に、ディレクティブが行うことは、要素(この例では入力)のblurイベントをバインドし、イベントが発生したときに(入力を残す)angularは、したがって、この場合、入力を残すとdoFoo()
が起動されます。
ここのプランカー: http://plunker.co/edit/J4ZEB6ppvkiIvdW9J2VU?p=preview
Angular UI @ http://angular-ui.github.io/ui-utils/ を使用して、ブラー、フォーカス、ダブルクリックイベント、またはバインドを提供できますAngular Jsによってネイティブにサポートされていないイベントへのコールバック
以下はブラーイベントの例の1つです:
<input ui-event="{ blur : 'blurCallback()' }">
<script>
$scope.blurCallback = function() {
alert('Goodbye');
};
</script>
Angular 1.2.24 *)の時点で、ng-blur
ディレクティブがあります。
// View
<input
type="text"
placeholder="Hello World!"
ng-model="foo.bar"
ng-blur="onBlur($event)"
>
// Controller
$scope.onBlur = function($event) {
return $event;
}
*どのAngularバージョンng-blur
が導入されたのかわかりません。
ネイティブのng-blur「最新の不安定版ではまったく機能しません。:(」 http://docs.angularjs.org/api/ng.directive:ngBlur
Yoは、この投稿の手順に従ってこれを修正できます。「AngularJsではblurイベントの直接サポートはありません。ただし、ディレクティブを作成することでblurイベントのサポートを追加できます。」 http://coding-issues.blogspot.in/2013/10/angularjs-blur-directive.html
フォーカスイベントとブラーイベントをサポートするディレクティブは、次のAngularJSリリースに含まれる予定です (参照) これはまもなくリリースされる予定です(私の推測では来月以内です)。 JQueryGuruが提案したように、待つことができない場合は、AngularUIプロジェクトのuiEvent
ディレクティブを使用できます。