You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何移除Leaflet插件的保存选项

问题描述

我参考了相关内容尝试了所有可行方案,但页面上Leaflet Draw的保存选项仍然没有被移除,以下是我编写的相关代码:

drawPluginOptions = { 
   draw: {
    polygon: {
    allowIntersection: false,
    repeatMode: false,        
    shapeOptions: {
      color: '#305496',
      fill: null,
      fillColor: null,
      fillOpacity: 0.2,
      opacity: 1,
    }
  },
  polyline: false,
  circle: false,
  rectangle: {
    showArea: false,
    repeatMode: false,
    shapeOptions: {
      clickable: false,
      color: "#305576",
      fill: null,
      fillColor: null,
      fillOpacity: 0.4,
      opacity: 1,
      stroke: true,
      weight: 2,
    }
  },
  marker: false,
  circlemarker: false
},
edit: {
  featureGroup: this.editLayers,
  edit: false,
  remove: true
}
};

可行解决方案

  • 方案1:补充配置显式关闭保存功能
    不同版本Leaflet Draw对save配置的规则不一样,优先尝试在现有edit对象中新增save: false配置:
edit: {
  featureGroup: this.editLayers,
  edit: false,
  remove: true,
  save: false // 新增此行
}

如果不生效,换为嵌套配置格式:

edit: {
  featureGroup: this.editLayers,
  edit: false,
  remove: true,
  save: {
    save: false
  }
}
  • 方案2:CSS强制隐藏保存按钮,规避版本兼容问题
    如果修改配置始终不生效,可以直接用样式隐藏对应按钮,用浏览器开发者工具选中保存按钮复制类名,替换下方选择器即可:
/* 以下为默认类名,不对的话自行替换 */
.leaflet-draw-actions a.leaflet-draw-action-save {
  display: none !important;
}
  • 方案3:自动提交删除操作,无需用户手动点保存
    如果业务逻辑不需要用户确认删除,直接添加事件监听,删除完成后自动执行后续逻辑:
map.on('draw:deleted', function(e) {
  // 这里写删除后的业务代码即可
});

内容的提问来源于stack exchange,提问作者pras k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:06:04