map地图组件使用
<map id="map" longitude="{{lng}}" latitude="{{lat}}" scale="14" ></map>
使用map的过程中出现一个问题,在onload方法中调用接口,对data中的lng和lat进行赋值,然后发现,map实际显示地图为空,没有坐标,而且下方出现了bing地图的标志,顿时懵逼,难道map组件使用的不是腾讯地图的坐标?是bing地图的坐标?不会这么丧良心吧……
后来研究发现,map组件的组件渲染是优先于接口setData的异步赋值的,导致map的渲染过程中实际上longitude和latitude值都为空,且map只渲染一次。
最后搜寻的方法是使用wx:if
<map wx:if='{{mapOn}}' id="map" longitude="{{lng}}" latitude="{{lat}}" scale="14" ></map>
初始化mapOn为false,接口赋值lng和lat之后将mapOn赋值true,渲染map!ding!ding!