Vue 传单加载时打开弹出窗口

Van*_*anz 0 leaflet vue.js

如何使 Vue-leaflet 标记弹出窗口在加载时已打开。

<l-map style="height: 350px" :zoom="zoom" :center="center">
  <l-tile-layer :url="url"></l-tile-layer>
  <l-marker :lat-lng="markerLatLng">
    <l-popup>Hello!</l-popup>
  </l-marker>
</l-map>
Run Code Online (Sandbox Code Playgroud)

我尝试过添加这样的选项

<l-popup :options="{closeOnClick: false,autoClose: false, openPopup:true}">Hello!</l-popup>

但它不起作用。

小智 7

Vue Leaflet 中没有允许popup默认打开 a 的属性。要以编程方式打开一个,popup我们需要引用.markerpopup

假设下面是您的模板标记

<template>
  <l-map 
    style="height: 350px" 
    :zoom="zoom" 
    :center="center">
    <l-tile-layer :url="url"></l-tile-layer>
    <l-marker ref="marker" :lat-lng="markerLatLng">
      <l-popup ref="popup">
        This is a popup open by default
      </l-popup>
    </l-marker>
  </l-map>
</template>
Run Code Online (Sandbox Code Playgroud)

然后,您可以编写此mounted生命周期方法,以便在加载弹出窗口时以编程方式打开弹出窗口。

mounted(){
   this.$nextTick(() => {
      this.$refs.marker.mapObject.openPopup()
   }) 
  }
Run Code Online (Sandbox Code Playgroud)

App.vue这个问题的一个工作示例可以在我的沙箱文件中看到: https://codesandbox.io/s/vue-leaflet-popup-open-by-default-09fcr