示例:
<!-- map.wxml --> <map longitude="23.099994" latitude="113.324520" markers="{{markers}}" covers="{{covers}}" style="width: 375pxheight: 200px"></map> // map.js Page({ data: {markers: [{ latitude: 23.099994, longitude: 113.324520, name: 'T.I.T 创意园'袜闭, desc: '我现在的位置'}],covers: [{ latitude: 23.099794, longitude: 113.324520, icaonPath: '../images/car.png', rotate: 10}, { latitude: 23.099298, longitude: 113.324129, iconPath: '../颂滚images/car.png', rotate: 90}] } })
微信小程序 setData常用错误解决办法:
1、微信小程序中,在wx.request({})方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报undefiend。
原因是,在javascript中,this代表着当前对象,会随着程序的执行过程中的上下文改变,在wx.request({})方法的回调函数中,对象已经发生改变,所以已经不是wx.request({})方法对象了,data属性也不存在了。官方的解决办法是,复制一份当前的对象,如下:
var that=this//把瞎大橘this对象复仿携制到临时变量that。在success回调函数中使用that.data就能获取到数据了。
2、下面就是修改代码,必须setData一下,不然地图不会刷新。
markers: { iconPath:
"/picture/bike.png", id: 0, latitude: 23.099994, longitude:
113.324520, width: 50, height: 50 }
for(var i = 0i <res.data.lengthi++){ //
that.data.markers[i].id=i // mark.id=i var param =
{} var string = "markers["+i+"].id" param[string] =
res.data[i].Bike_id that.setData(param)
var string="markers["+i+"].iconPath" param[string]
="/picture/bike.png" that.setData(param) var
string = "markers["+i+"].latitude" param[string] =
res.data[i].BIKE_latitude that.setData(param)
磨团 var string = "markers["+i+"].longitude"
param[string] = res.data[i].BIKE_longitude
that.setData(param) var string =
"markers["+i+"].width" param[string] = 50
that.setData(param) var string = "markers["+i+"].height"
param[string] = 50 that.setData(param)
/* that.setData({ markers:[{ iconPath:
"/picture/bike.png", id: 0, latitude: 23.099994, longitude:
113.324520, width: 50, height: 50 }] })*/
} // console.log(res.data[1]) var
markk=that.data.markers that.setData({markers:markk})
小程序setData()设置,百度找到: http://www.jb51.net/article/111691.htm
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)