是用wx:for得到列表;
点击这个列表中的某一项,是这个项目中的点赞数加1,再次点击减1,同时点赞的心形图标也相应变化。
从觉得获取不到点击的这一项的内容,不像angular那么的灵活。我用this获取也不能获取到。
有大神做过获取多条列表,单个点赞的吗?是用wx:for得到列表;
点击这个列表中的某一项,是这个项目中的点赞数加1,再次点击减1,同时点赞的心形图标也相应变化。
从觉得获取不到点击的这一项的内容,不像angular那么的灵活。我用this获取也不能获取到。
有大神做过获取多条列表,单个点赞的吗?info.html
<view class="common-list">
<block wx:for="{{CommentData}}">
<view class="list-item has-img" data-id="{{item.id}}">
<view class="content">
<view class="header">
<view class='vbox'>
<text class="title">{{item.nickname}}</text>
</view>
<view class='vbox dianzan' bindtap='dianzan2' data-id="{{item.id}}">
<image class="vote" src="../../images/{{item.active ? 'thumb_up_active.png':'thumb_up.png'}}" />{{item.dianzan}}
</view>
</view>
<text class="body">{{item.content}}</text>
<text class="bottom">{{item.time_str}}</text>
</view>
<image src="{{item.head_pic}}" class="cover" />
</view>
</block>
</view>
info.js
dianzan2:function(e){
let comid=e.currentTarget.dataset.id;
let tmp = this.data.CommentData.map(function (arr, index) {
if (comid == arr.id) {
if (arr.active){
arr.active = false;
arr.dianzan--;
}else{
arr.active = true;
arr.dianzan++;
}
//发送请求保存结果到数据库
}
return arr;
})
this.setData({ CommentData: tmp });
}
查询当前数据在数组中的索引,然后更改值就行了
大概思路就这样,findIndex, 需要自己添加polyfill或者自定义一个方法
utils/array-findIndex.js 文件内容如下
app.js 中添加