美文网首页
ionic4 购物车全选,反选

ionic4 购物车全选,反选

作者: 莫名点 | 来源:发表于2019-07-28 09:34 被阅读0次

    ionic4 购物车全选,反选

    1.html结构

    <ion-content>
      <ion-list *ngFor="let item of cartList"> 
        <span (click)="changeAll(item, $event)"><ion-checkbox [(checked)]="item.checkAll"></ion-checkbox>{{item.name}}</span>
        <ion-item *ngFor="let v of item.list">
          <ion-checkbox [(ngModel)]="v.checked" (ionChange)='change(item)' ></ion-checkbox>{{v.name}}
        </ion-item>  
      </ion-list>
    </ion-content>
    

    注:全选按钮的方法要写在<ion-checkbox></ion-checkbox>标签外的dom元素上,不然无法正确获取当前选中状态。

    2.购物车数据结构

    cartList =[
        {
          id: 1,
          name: '水果',
          checkAll: false,
          list: [
            {
              id: 2,
              name: '苹果',
              checked: false,
            },
            {
              id: 3,
              name: '苹果1',
              checked: false,
            },
            {
              id: 4,
              name: '苹果2',
              checked: false,
            },
          ]
        },
        {
          id: 5,
          name: '水果1',
          checkAll: false,
          list: [
            {
              id: 6,
              name: '苹果2',
              checked: false,
            },
            {
              id: 7,
              name: '苹果3',
              checked: false,
            },
            {
              id: 8,
              name: '苹果4',
              checked: false,
            },
          ]
        }
      ]
    
    

    3.全选和反选方法

    changeAll(item,e) {
        console.log(item.checkAll)
        console.log(e.target)
        console.log(e.target.checked)
        if(e.target.checked) {
          item.list.forEach(res => {
            res.checked = true;
          })
        } else {
          item.list.forEach(res => {
            res.checked = false;
          })
        }
        
      }
    
    
      change(item) {
        console.log(this.cartList)
        const arr = [];
        item.list.forEach(res => {
            arr.push(res.checked)
          })
          if (!arr.includes(false)){
            item.checkAll = true;
          } else {
            item.checkAll = false;
          }
      }
    

    相关文章

      网友评论

          本文标题:ionic4 购物车全选,反选

          本文链接:https://www.haomeiwen.com/subject/qcrurctx.html