为了账号安全,请及时绑定邮箱和手机立即绑定

关于全选和取消全选,取消全选不能取消上面的样式

<a href="javascript:void 0" class="item-del-btn" @click="checkAll(false)">
 <span>取消全选</span>
</a>


checkAll: function (flag) {
   this.checkAllFlag = flag;
   var _this = this;
   if(this.checkAllFlag){
       this.productList.forEach(function(item,index){
           if( typeof item.checked == 'undefined'){
               _this.$set(item,"checked",_this.checkAllFlag);
           }else{
               item.checked = _this.checkAllFlag;
           }
       });
   }
},


不知道哪里出问题了



正在回答

2 回答

 if(this.checkAllFlag){
       this.productList.forEach(function(item,index){
           if( typeof item.checked == 'undefined'){
               _this.$set(item,"checked",_this.checkAllFlag);
           }else{
               item.checked = _this.checkAllFlag;
           }
       });
   }

你这里在外层做了一个判断,如果给checkALL传入的是false(也就是点击的是取消全选),那么这里的判断就是为假,里面的一切都不会执行了。也就不会遍历然后取消每一项的选中了。所以应该去掉外层的 if(this.checkAllFlag),直接去遍历。

0 回复 有任何疑惑可以回复我~
#1

清暄 提问者

非常感谢!
2017-07-28 回复 有任何疑惑可以回复我~

        checkAll(flag) {

                this.checkAllFlag = flag;

                this.productList.forEach((item) => {

                    if (item.check == undefined) {

                        this.$set(item, 'check', flag);

                    } else {

                        item.check = flag;

                    }

                })

        }


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
使用vue2.0实现购物车和地址选配功能
  • 参与学习       96864    人
  • 解答问题       446    个

本视频教程结合案例完整贯穿各个知识点,轻松玩转vue2.0框架

进入课程

关于全选和取消全选,取消全选不能取消上面的样式

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信