This is just an updated version of the previous answer.
angular.module('app').directive('navCollapse', function () { return { restrict: 'A', link: function (scope, element, attrs) { var visible = false; element.on('show.bs.collapse', function () { visible = true; }); element.on("hide.bs.collapse", function () { visible = false; }); element.on('click', function(event) { if (visible && 'auto' == element.css('overflow-y')) { element.collapse('hide'); } }); } }; });
HTML
<div class="collapse navbar-collapse navbar-app-collapse" nav-collapse=""> <ul class="nav navbar-nav"> </ul> </div>
source share