Вы можете просто прослушать событие окна и отключить все фокусы при нажатии:
$window.addEventListener('click', function(e) {
$scope.markers.forEach(function(marker) {
marker.focus = false;
});
});
Вы можете запретить использование по умолчанию, чтобы не вызывать щелчок окна, когда кто-то выбирает маркер:
$scope.$on('leafletDirectiveMarker.click', function (event, args) {
event.preventDefault();
$scope.markers['m' + args.model.value.id].focus = true;
createTemplateForPopup(args.model.value);
});
Единственная проблема в том, что это всегда будет срабатывать. Поэтому рекомендуется удалять EventListner при уничтожении карты.