使用vue组件创建leaflet中的popup弹窗

leaflet中创建popup弹窗,如何使用vue组件

  1. 创建vue组件TestModal.vue,接收testData参数,发出close事件

// TestModal.vue

<template>
  <div></div>
</template>

<script>
export default {
  props: {
    testData: {
      type: Obj,
      default: () => {
        return {};
      },
    },
  },
  emits: ["close"],
  setup(props, { emit }) {
    const onClickHandle = () => {
      emit("close", {});
    };
  },
};
</script>

<style>
</style>

  1. 创建popup

import TestModal from './TestModal.vue'

const TestModalVue = Vue.extend(TestModal);

const createPopUp = info => {
  // 在 propsData 中传参,组件props接收
  let vm = new TestModalVue({
    propsData: {
      // 参数1
      testData: {},
      // 参数1
      testData2: {},
      ...
    }, //传参
  });
  // 监听 TestModal.vue 组件的事件
  vm.$on('close', obj => {
    // 这里就可以监听子组件的事件
  });
  vm.$mount(); //挂载

  // vm.$el 中就是 dom
  let htmlDom = vm.$el; 

  // 使用dom 创建弹窗
  L.popup({
      // closeButton: false,
      // autoClose: false,
      // closeOnEscapeKey: false,
      // closeOnClick: false,
      // offset: [-135, 0],
    })
      .setLatLng([lat,lon])
      .setContent(htmlDom as HTMLElement)
      .openOn(map);
  };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值