首页 > 编程知识 正文

对话框的使用方法,elvui拾取框没了

时间:2023-05-05 14:06:16 阅读:148343 作者:1320

使用Element UI创建坐标拾取页面时存在问题。对话框组件包裹的地图3358www.Sina.com/,但是普通页面上写的地图没有这样的问题

坐标拾取是一个借用高德地图的工具。 http://lbs.AMAP.com/API/JavaScript-API/example/map/click-to-get-LNG lat

想实现的效果是点击经纬度的输入框

将显示一个对话框,其中显示坐标选择工具

选择坐标后单击确认关闭对话框,并将获取的经纬度数据放入经纬度输入框。 (截图中坐标出现差异时,请自己无视。 )

但是问题是地图不显示在对话框中

这是一个例子。 在https://jsfiddle.net/mw51L8mu/中,您可以看到对话框打开后是空白的

而且,如果不在对话框中写入同样的代码,显示就没有问题:

https://jsfiddle.net/u1ghuhh5/

研究了很久,最后跑去看了element ui的源代码,终于发现了问题的原因:

divclass=' El-dialog _ _ body ' v-if=' rendered ' slot/slot/div

对话框包含此div,但使用v-if命令显示或隐藏此div,以便您可以通过查看vue官方文档了解v-if的特性。

也就是说,在对话框未打开的情况下,执行了初始化写入挂接函数的映射的方法,但由于v-if绑定的状态为假,因此实际上映射没有初始化成功,但打开对话框,即v-if记录由于不执行mounted方法,因此对话框中只有未使用高级构造函数进行渲染的普通div

如果知道原因的话,就能找到解决方案。 可以在watch监视对话框中显示状态变量

watch:{visible(curval,oldVal ) if ) curval==true ) varmap=newamap.map ) container、{健康鸡翅:9} letcliclet function(e ) e ) document.getelementbyid ) lnglat ).value=e.LNG lat let auto=new AMAP.autocomplete ({ input : ' 60 ' ) amap.event.addlistener(auto,' select ',select ); //注册拦截,并在当选某条记录时注册functionselect(e ) if ) e.poie.poi.location ) map.setzoom ) 15 ); map.setcenter(e.poi.location; } } } } }这样在对话框中正常渲染内容后,初始化地图即可。

然后复制和粘贴黄金样品,坐标拾取工具就差不多完成了。

最后还有一个小问题。 即使您在输入框中输入地址,但由于金牌设置为区域下拉选项的z-index级别低于element ui对话框中的(似乎是金牌1024,element对话框2000或更高),也仍然会出现下拉框

. AMAP-sug-result { z-index :3000; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。