這是我寫的第一篇文章,如有不對,請你們指正,多謝!
這篇文章主要講小程序的全選。接觸小程序沒有過久,我想每實現一個功能就在這裏記錄一次,以此鞏固。
其實實現很簡單,在每一個選擇集合中加入一個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 }) },
小白一枚,水平不好,請多指教;this