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

当所有的单品被选中的同时,全选按钮应该被点亮被勾选,老师撇开了这个大难点呀!无语了,囧

解决方案:定义两个空的数组,分别来装数据。主要是用来比对作用。一个数组用来装被选中时当前这条被点击的数据的price*shuliang.

一个数组用来存被选中的当前数据的名称或者数量或者价格,这个数组没有其他的作用。仅仅是用来比较两个数组的长度,当两个数组的长度相等就点亮全选按钮,当数组的长度不相等,就熄灭全选按钮。也就是说,取消任意一条数据的时候就熄灭全选按钮。并且删除掉这个数组中的最前面的这个值。这个判断有点复杂。理解了就好弄。饶恕我不能贴出代码。这个老师很懒。故意不讲选中全部单品却不点亮全选按钮。就是一个最大的bug,也是最难点所在。


正在回答

2 回答

selectedProduct: function(item){
   if(typeof item.checked == 'undefined'){
    Vue.set(item,"checked",true);
    // 局部注册
    // this.$set(item,"checked",true);
   }else{
    item.checked = !item.checked;
   }
   var itemisChecked = [];
   this.productList.forEach(function(item,index){
    if(item.checked == true){
     itemisChecked.push(item);
    }
   })
   if(itemisChecked.length == this.productList.length){
    this.checkAllFlag = true;
   }else{
    this.checkAllFlag = false;
   }
  },

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

https://github.com/Xiaobei-QuQ/learn-vue/tree/master/vue-shop 按照你的思路做出来了,感谢~

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

qq_梦紫菱_0

同学你好!看了你的代码,你的思路是两个数据都是总金额,判断是否相等然后点亮全选按钮。那上面的同学说的数组长度 还有“并且删掉这个数组最前面那个值”怎么理解
2018-09-19 回复 有任何疑惑可以回复我~
#2

慕娘2848535

谢谢~给的思路和源码
2018-10-22 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

当所有的单品被选中的同时,全选按钮应该被点亮被勾选,老师撇开了这个大难点呀!无语了,囧

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