window.angular && (function (angular) { 'use strict'; angular .module('app.common.directives') .directive('toggleFlag', function ($document) { return { restrict: 'A', link: function (scope, element, attrs) { function elementClick(e) { e.stopPropagation(); } function documentClick(e) { scope[attrs.toggleFlag] = false; scope.$apply(); } element.on('click', elementClick); $document.on('click', documentClick); // remove event handlers when directive is destroyed scope.$on('$destroy', function () { element.off('click', elementClick); $document.off('click', documentClick); }); } }; }); })(window.angular);