问题是mapbox官网,他的popup实例是这样的
varpopup=newmapboxgl.popup (offset : popup offsets,className: 'my-class'} ' ).setlnglat ) e.LNG lat.sete 只有本地的html才能看到他的popup的内容,那些标签可以写style,可以影响他。
除非class写在APP.Vue上,否则class不会生效。
但是,如果每个图层都添加一种popup,且图层数多,显示内容不同,这样勉强书写是不可取的。 应该使用vue组件。 但是,必须将vue组件包括在此popup中。
必须注意的是,像上面的示例一样将组件写为yxdzc是徒劳的。 他只支持本地的html。 说白了,他加载popup的方式是将mapbox添加到dom中,而不是编译vue。
如果尝试在弹出窗口中使用Vue命令,弹出窗口可能会有点麻烦
以下是我的操作。 请注意,首先要引入组件,然后引入vue实例
importbasedetailfrom ' @/views/detail data/base detail.vue ' importvuefrom ' vue ' constbasedetailitem=vue.extend (
popup html=' divid=' base-detail '/div '然后生成popup
this.popup.setlnglat(LNGlat ).sethtml ) popuphtml ).setmaxwidth ) none ).addto ) this.map )然后,将组件的内容指定为此id
newbasedetailitem () props data : (detailid : this.detailid ).$mount ) ' #base-detail ' )此处需要注意。 propsdata应该是关键字
props: ['detailId']可以看出我成功地将我的vue组件放入了这个地图盒的popup内容中
参考网站https://tech.beyond tracks.com/posts/map box-GL-popups-with-vue /
3359 github.com/phe gman/vue-map box-GL # popups