现在有个点赞需求,后台返回数据,字段名为islike有0和1 两种状态
0:当前用户没有赞这条商品
1:代表用户已经赞了这条商品 图标变为黄色
后台返回的数据大概是这样:
请求接口的时候islike赋值给data中的items
this.items = res.body.lists;
this.zanstatus = res.body.lists.islike
{
msgflag:1,//1:数据传递成功 0:数据传递失败
lists:{
....,
islike:1//当前用户已经点赞过该商品
}
}
<div class="demo">
<button :class="likeclass" @click="like"></button>
</div>
var demo = new Vue({
el:"",//略
data:{
items:"",//存储后端返回的数据
zanstatus:""//存储返回的islike值
},
computed:{
likeclass:function() {
if(this.items. != "") {
if(this.items == 0) {
this.items = "zan"//正常灰色图标
}
if(this.items == 1) {
this.items = "zan-active"//图标变为黄色
}
return this.items
}
}
},
})
!!!!到现在一切正常,后端传过的islike=0 图片正常为灰色,islike = 1图片变黄色
点击这个赞图标的时候,就有问题了!!!!
//点击手形赞的图标的时候,判断当前的islike值,如果为0说明用户要点赞,如果为1说明用户要取消赞
点击的时候调用like这个方法,class没发生任何变化 我尝试alert出likestatus的值,如果初始状态为1那么无论怎么点击依然为1,如果初始状态为0那么无论怎么点击也依然是0!!
求大神帮忙看看哪里除了问题
methods:{
like:function() {
this.$http({
url:"请求点击取消赞或点赞的接口",
params:{....},
headers:{'Content-Type': 'appliaction/json'}
}).then(function(res){
if(res.body.msgflag == 1) {//代表请求成功
if(this.zanstatus == 0) {//如果当前zanstatus为0表示用户想点赞
$('button').removeClass('zan').addClass('zan-active');
this.zanstatus = 1
}
if(this.zanstatus == 0) {//如果当前zanstatus为1表示用户取消点赞
$('button').removeClass('zan-active').addClass('zan');
this.zanstatus = 0
}
}
}
,function(err){
console.log(err)
})
}
}
$http請求後then裏的this.zanstatus怎麼2次判斷都是0,估計第2次判斷應是if(this.zanstatus == 1)