当用户在地图外单击时,leafletDirectiveMarker禁用焦点

时间:2018-06-26 13:54:36

标签: leaflet angular-leaflet-directive cumulocity

我在标记上具有单击功能,这将使标记弹出。但是,当用户在地图外单击时,我想禁用此焦点。该怎么做?

$scope.$on('leafletDirectiveMarker.click', function (event, args) {

            $scope.markers['m' + args.model.value.id].focus = true;

            createTemplateForPopup(args.model.value);
        });

1 个答案:

答案 0 :(得分:0)

您可以简单地监听窗口事件并禁用对点击的所有关注:

$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是一个好习惯。