博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue系列:在vux的popup组件中使用百度地图遇到显示不全的问题
阅读量:6903 次
发布时间:2019-06-27

本文共 1283 字,大约阅读时间需要 4 分钟。

问题描述:
将百度地图封装成一个独立的组件BMapComponent,具体见 
Vue系列:如何将百度地图包装成Vue的组件
 
  1. <popup :show.sync="showPositionContainer" style="position:absolute">
  2. <b-map-component v-ref:mapviewer :map-height="mapH"></b-map-component>
  3. </popup>
 
  1. selectPosition() {
  2. this.showPositionContainer = true
  3. var that = this
  4. that.$refs.mapviewer.showMap(that.mapInfo)
  5. }
  6. },
  7. //BMapComponent的showMap方法定义如下:
  8. showMap(mapInfo) {
  9. console.log('enter initMap')
  10. this.mapInfo = this.cloneMapInfo(mapInfo)
  11. this.map = new BMap.Map("allmap")
  12. var point = new BMap.Point(this.mapInfo.longitude, this.mapInfo.latitude)
  13. var marker = new BMap.Marker(point)
  14. this.map.addOverlay(marker)
  15. this.map.centerAndZoom(point, 15)
  16. this.needCenter = false
  17. var infoWindow = new BMap.InfoWindow(this.mapInfo.address, this.opts) // 创建信息窗口对象
  18. this.map.enableScrollWheelZoom(true)
  19. this.map.openInfoWindow(infoWindow, point) //开启信息窗口
  20. },
发现地图总是显示不全。
原因分析:
    popup通过show属性来控制显示和隐藏,然后在内部通过watch该show属性的变化,再响应事件来执行相关的显示和隐藏的动作,由于vue是在独立的线程中去轮训那些被watch的变量的变化,这个轮训是有一定的间隔的,所以属性变化和动作执行之间是异步的。但是我们在代码中,showPositionContainer改为true之后马上就执行showMap,此时popup还没显示出来。
解决方法:
    把selectPosition改为如下方式即可.
 
  1. selectPosition() {
  2. this.showPositionContainer = true
  3. var that = this
  4. //此处加了个延时处理,因为popup的show属性响应没有那么及时
  5. window.setTimeout(function() {
    that.$refs.mapviewer.showMap(that.mapInfo)}, 150)
  6. }

转载地址:http://lopdl.baihongyu.com/

你可能感兴趣的文章
通过游戏来学习编程
查看>>
周记(飞船一号
查看>>
openssl初步使用
查看>>
Vue项目碰到"‘webpack-dev-server’不是内部或外部命令,也不是可运行的程序或批处理文件"报错...
查看>>
模拟任务资源管理器的小程序
查看>>
通过一个例子,总结下检测数组属性的N种方法
查看>>
Samba结合AD实现域帐号认证的文件服务器
查看>>
laravel的Eloquent中的get()和Query/Builder中的get()
查看>>
bzoj 2286(洛谷 2495) [Sdoi2011]消耗战——虚树
查看>>
51nod 1301 集合异或和——异或dp
查看>>
weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB 解决方法
查看>>
表格边框设置
查看>>
问题 K: A/B Problem
查看>>
Django实战(7):改造ProductList界面
查看>>
大专生自学Java到找到工作的心得
查看>>
CI框架
查看>>
python下使用protobuf
查看>>
少搞一点 对象, 多搞一点 文本
查看>>
首页logo的代码标志性写法,方便SEO
查看>>
安装完vs2008中文的sp1后,智能提示变成英文.
查看>>