vue.js - 引用传单弹出窗口可置于前面或后面

标签 vue.js leaflet

我正在构建应用程序,使用 vue.js 将传单 map 上的数据显示为弹出窗口。我想在传单弹出窗口中使用作为传单对象一部分的“bringToFront”函数。我如何调用该函数 - 无论是作为 L 对象还是 L-popup 组件?

Vue-leaf-let 库允许将传单元素渲染为“l-marker”或“l-popup”等组件。例如,诸如“l-add”之类的标记函数是通过添加“@”符号(作为 vue 组件)来使用的。

不幸的是,我还没有找到任何有条件地使用弹出层的bringToFront()或bringToBack函数的方法。

我尝试将 @bring-to-front="condition"传递到组件中,就像使用标记的 @add 那样;

在弹出窗口中使用“:ref”带来没有传单方法的“vue”组件。

Component:
``` <l-layer-group ref="layerGroup">
            <l-marker v-for="items"
                      :ref="`someRef`"
                      :lat-lng="item"
                   //succeed:
                      @add="($event)=>open($event, item)">
                <l-popup :lat-lng="item"
                         //not succeed`enter code here`
                          @bring-to-front => someFunc()
                         :ref="`popup${someDiffId}`">
                    <popup-content :key=item.key" :item="item"/>
                </l-popup>
            </l-marker>
        </l-layer-group>```

from @open I use:
```            open(event, item) {
                const marker = event.target;
                this.$nextTick(() => {
                    marker.openPopup()
                    condition? marker._popup.bringToFront():marker._popup.bringToBack()
                    setTimeout(() => {
                        marker.remove()
                    }, 30000)
                })
            }
``` 

通过在标记上使用“@add”并引用“marker._popup”,我成功了,但不是来自 $this.refs,也不是来自观察者。

从“:ref”引用对象是指没有 @bringToFront 方法的 vue 组件,因此我使用来自标记的引用。

最佳答案

好吧,当使用所有组件继承leaflet的“layer”时 - 在内部使用“@add”将渲染到map/marker/layer的引用作为“leaflet对象”, 这意味着只需添加“@add”:

<l-popup  @add="($event)=>func($event, leafletItem)">

和内部函数:

  methods: {
         func(event, leafletItem){
          const popup = event.target;
          condition ? popup.bringToFront() : popup.bringToBack()
        }
    }

关于vue.js - 引用传单弹出窗口可置于前面或后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57594527/

相关文章:

css - 如何将 SASS "normal way"与 vue.js 一起使用?

javascript - Vue 中路由后未定义 auth0 变量

javascript - 如何将渲染的 Vue 组件作为参数传递?

r - 在 R 中控制 Leaflet 热图的 Z 索引

javascript - leaflet.js 标记未显示

javascript - vue-good-table 日期格式 2019-02-26T02 :11:56. 308466-08:00

javascript - 在带有路由器 View 的 Vue3 中使用 async setup() 时出现空白

javascript - 如何在删除包含它的 topojson 层时删除传单标签

leaflet - 在 MapBox 中加载 geoJson 以使用 Leaflet.Draw 进行编辑

javascript - React-Leaflet Map 不更新