这是我写的第一篇文章,若有不对,请大家指正,多谢!
这篇文章主要讲小程序的全选。接触小程序没有太久,我想每实现一个功能就在这里记录一次,以此巩固。
其实实现很简单,在每个选择集合中加入一个isCheck字段,默认是false(未选中),然后wxml页面中循环list时,给checkbox加一个属性:checked='{{item.isCheck}}’;
接下来是js,在全选按钮上绑定事件:checkAll。js中首选要得到所有的list(var list = that.data.Data);然后for循环list,在循环中让每一个isCheck取反;之后,在循环外setData我们上文声明的list:that.setData({Data:list}),意思就是把我们操作过的list重新赋给Data,页面会重新渲染;废话不多说,以下是代码:
wxml:
<view class='atte-title'>
<view class='odb-title-left'>选择参会人</view>
<checkbox value='全选' bindtap='checkAll'></checkbox>
</view>
<checkbox-group bindchange='change'>
<block wx:for='{{Data}}' wx:key>
<checkbox value='{{item.name}}' checked='{{item.isCheck}}' class='check-item' style='background:#fff;'>
<view class='check-box'>
<view class='atte-ava'>
<image src='{{item.Image}}'></image>
</view>
<view class='atte-name'>{{item.name}}</view>
<view class='atte-point'>
<image src='/images/Articles/point.png'></image>
</view>
<view class='atte-pro'>{{item.partyBranchJobTypeName}}</view>
</view>
</checkbox>
</block>
</checkbox-group>
// 全选
checkAll: function (e) {
var that = this
console.log(that.data.Data)
var list = that.data.Data
for (var i = 0; i < list.length;++i){
list[i].isCheck = !list[i].isCheck || false; //list[i].isCheck默認是false,这里是取反
}
that.setData({
Data:list, //将取反后的集合setData到我们的Data
})
},
小白一枚,水平很差,请多指教;