有没有更好的方法在传单中的 "popupopen" 事件上获取源标记?

Is there any better way to get source marker on "popupopen" event in leaflet?

所以我现在是这样做的:

 map.on('popupopen', ({ popup }) => {
  if (popup instanceof L.Popup) {
    const marker = popup._source as L.Marker;
  }
});

我真的不喜欢访问传单中的私有变量。我仍然没有在传单中找到 api clean 方法来获取绑定到活动弹出窗口的标记。

更好的方法是在标记 popupopen 上发出新事件并从任何你想要的地方访问它。

popupopen: () => {
  map.fire('someevent', { somemarker });
},
map.on({
  'someevent': (event) => {} // <- event has marker
});