# angular-click-outside **Repository Path**: dsjonline/angular-click-outside ## Basic Information - **Project Name**: angular-click-outside - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-15 - **Last Updated**: 2022-02-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # angular-click-outside An Angular directive to detect a click outside of an elements scope. Great for closing dialogues, drawers and off screen menu's etc. ### Recent changes - Shortened Bower description to remove Bower warning on install (thanks [@jcubic](https://github.com/jcubic)) - Thanks to [@Lorelei](https://github.com/Lorelei) for the pull request to pass the event back in the callback function - Thanks to [@CosticaPuntaru](https://github.com/CosticaPuntaru) for the improvement to now allow the directive to no longer need an id on the element for this to work - Added basic ngdocs documentation - Removed the addition of the element id to the classes array as now it no longer needs to be checked ### Roadmap - Addition of outside-if attribute. Ability to restrict click outside registering to defined elements (opposite of outside-if-not) rather than anywhere outside an element - Look into the worth of converting directive to Angular 1 component - Conversion of directive to Angular 2 component ### Installation There are two easy ways to install the clickoutside directive: #### Manual download Download the `clickoutside.directive.js` file, and include it in your `index.html` file with something like: ```html ``` Also be sure to include the module in your `app.js` file with: #### npm ======= ```javascript angular.module('yourAppName', ['angular-click-outside']) ``` #### Bower ======= ```shell npm install @iamadamjowett/angular-click-outside ``` ### Usage ======= ```shell bower install angular-click-outside --save ``` ### Usage The directive will work with either ID's or classes, however, be wary of using classes as quite often some unwanted elements may have the same class, and so will be excluded/included unintentionally. If you are sure that you want to exclude/include all elements with a class however the directive will work just fine as it looks through the classNames as well as looking at the given ID list. General though ID's will suffice, but instances of dynamically inserted list items may require the use of classes. Add the directive via the `click-outside` attribute, and give exceptions via the `outside-if-not` attribute. Basic example: ```html
``` This is of little use though without a callback function to do something with that click: ```html ``` Where `closeThis()` is the function assigned to the scope via the controller such as: ```javascript angular .module('myApp') .controller('MenuController', ['$scope', MenuController]); function MenuController($scope) { $scope.closeThis = function () { console.log('closing'); } } ``` ```html