angular.element('body').on('click', function () {
// $('.dropdown-menu').hide();
console.log("clicked outside");
});
$scope.showDropdown = function (e) {
$scope.filterClick = !$scope.filterClick;
e.stopPropagation();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.4/angular.min.js"></script>
<button id="btn-append-to-body" type="button" class="btn btn-primary"
ng-click="showDropdown()">
<img src="assets/images/filterIcon.png">
  Filter <span class="caret"></span>
</button>
<li class="nav-item dropdown" ng-hide="filterClick">
<div class="dropdown-menu">
<div class="dropdown-item" ng-repeat="item in items">
<div class="filter-class">
</div>
</div>
</div>
</li>
У меня есть функция нажатия кнопки и щелчка тела. Но если я напечатаю какое-либо значение в консоли во время щелчка тела, оно работает нормально. Но та же функциональность работает и для нажатия кнопки.
Моя потребность есть,
1) Если я нажму кнопку, нажатие тела не должно срабатывать. Должна работать только кнопка по нажатию кнопки.
2) при нажатии кнопки открывается раскрывающийся список фильтров. И когда я снова нажимаю ту же кнопку, она закрывается. (Переключение)
3) Но когда я щелкаю снаружи, я хочу скрыть этот выпадающий список. Но это не работает.
Как я могу сделать это с помощью angularjs?