本文编写于 1490 天前,最后修改于 1490 天前,其中某些信息可能已经过时。
最近要赶一个小程序
假定一个情形: 为某一个物品投票,投了票之后就不可以再投,在具体页面显示您已经投过票,在众多商品页面,投票的那几个显示已经投过票 使用js的array来进行记录
先创建数组
let that = this
if (wx.getStorageSync('vote_' + that.data.program.event_id)) {
//有就读取
var hasMarkedArr = wx.getStorageSync('vote_' + that.data.program.event_id);
} else {
//没有就创建
var hasMarkedArr = Array()
}
//把投票的这个物品序号推到数组里面
hasMarkedArr.push(that.data.program.college_id)
//同步到storage中
wx.setStorageSync('vote_' + that.data.program.event_id, hasMarkedArr)
然后在需要用到的单页面js使用includes判断是否在数组中

let hasMarkedArr = wx.getStorageSync('vote_' + options.event_id);
console.log(hasMarkedArr)
console.log(options.college_id)
console.log(hasMarkedArr.includes(options.college_id))
if (hasMarkedArr.includes(parseInt(options.college_id))) {
that.setData({
button: true,
buttonText: "您已参加过评分"
})
}
多页需要用到显示是否投过票,在wxml上只能使用wxs进行数组遍历达到目的,就草率一点,此外在js中需要先传入array
<view wx:if="{{vote.isVote(item.college_id,voteArr)}}" class="candidate_vote">已投票</view>
<wxs module="vote">
var isVote = function(college_id,array) {
for (var i = 0; i < array.length; ++i) {
if(array[i]==college_id){
return true
}
}
return false
}
module.exports.isVote = isVote;
</wxs>
然后即可实现
