问题标签 [leaflet-draw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
17 浏览

javascript - 传单销需要单击两次以更新表单字段

我正在使用 Leaflet Draw 将一些图钉移动到新位置并将这些位置保存到数据库中。

我还有一个包含 2 个字段的表单,使用户可以通过直接在名称和纬度/经度字段中输入详细信息来更改图钉的名称和纬度/经度。

为此,他们首先单击一个图钉,该图钉使用当前详细信息填充字段,用户可以更改这些信息,然后更新图钉详细信息。

一切正常,除了一个怪癖,这意味着您必须在 pin 上单击两次才能使用 pin 详细信息更新表单字段。事实上,我发现不一定要点击图钉两次,而是点击地图上的任何交互式元素都会使更新发生,例如另一个图钉、锚链接或任何表单字段。

我已经尝试了很多想法,试图让表单字段只需单击 1 次即可更新,但无法弄清楚为什么会发生这种情况。

任何关于为什么需要单击两次或如何解决问题以便只需要单击一次的任何想法都将非常受欢迎。

我正在使用 Angular、Leaflet 和 Leaflet Draw。用于显示地图和表单字段的地图编辑器组件、用于实现 Leaflet Draw 功能的地图绘制服务以及用于放置图钉和执行更新的地图编辑器服务。

为简洁起见,我只会在下面包含我认为的相关代码片段,但如果您需要任何其他代码片段,请询问。

我还附上了一个在编辑模式下引脚和字段的截图。

顺便说一句,表单字段使用 ngModel 绑定到活动标记,因此这些值会自动更新标记数据,以便以后保存。不过,我不确定这是否是最好的方法。

on mouseup 函数中的 console.log 消息显示标记对象在第一次单击时正确更新,只是数据在第二次单击之前没有进入表单字段。


地图编辑器.component.ts


地图编辑器.component.html


地图绘制.service.ts


地图编辑器.service.ts


地图截图

0 投票
0 回答
40 浏览

angular - 编辑和删除不适用于 Angular Leaflet

我正在尝试编辑和删除我在传单地图上绘制的形状。但是,当我激活编辑或绘制时,什么也没有发生,我无法编辑形状。我目前正在将传单和传单绘制导入我的应用程序:

这就是我的代码的样子:

地图显示我可以编辑或删除多边形,但实际上不能拖动顶点也不能删除多边形。难道我做错了什么?任何帮助是极大的赞赏!