data: {
caidanimg:[]
},
caidan:function(res){
var caidanimg1 = [
"https://xxx.com/0.jpg",
"https://xxx.com/1.jpg",
"https://xxx.com/2.jpg"
]
var randomImg1 = caidanimg1[Math.floor(Math.random() * caidanimg1.length)];
return{
imageUrl: randomImg1,
success:function(res){
this.setData({
caidanimg : this.imageUrl,
})
}
}
},
<view class="home2" bindtap="caidan">
<image bindtap="caidan" src="{{caidanimg}}" mode="widthFix"></image>
</view>
然后页面并没有任何显示
代码写的有点问题,randomImg1 其实已经被你赋过值了,接下来要做就是把这个值再赋给caidanimg就行了。
所以将你代码中的caidan:{} 函数改为这样即可。
caidan: function (res) {
var caidanimg1 = [
"https://xxx.com/0.jpg",
"https://xxx.com/1.jpg",
"https://xxx.com/2.jpg"
]
var randomImg1 = caidanimg1[Math.floor(Math.random() * caidanimg1.length)];
this.setData({
caidanimg: randomImg1,
})
}
success 打印一下 this.imageUrl 。
如果有值打印一下this 看看,也有可能是this指向问题 。 你需要 在 return 上面 var _this=this;
然后 success里_this.setData({})