角4总和

角4总和

问题描述:

我有这个角4总和

lists = [ 
    { 
     name: 'Картошка', 
     cost: 20, 
     checked: false, 
    }, 
    { 
     name: 'Хлеб', 
     cost: 10, 
     checked: false, 
    } 
    ]; 

    cart = []; 

    check(list: any){ 
     list.checked = !list.checked 
     if(list.checked) { 
      this.cart.push(list.cost); 
     } else{ 

     } 
     console.log(this.cart); 
    } 

请帮助。当点击复选框(真)时,将费用添加到totalSum。当复选框(false)从totalSum中删除成本。我不知道是怎么做到的。请帮忙。谢谢! 它是如何做到的?

+0

它怎么与答案走,要么做帮你? :) – Alex

您应该使用[ngModel]ngModelChange()到如下处理这个问题,

<div *ngFor= "let list of lists" > 
    <input type="checkbox" (ngModelChange)="check($event,list)" 
      [ngModel]="list.checked" />{{list?.name}} 

</div> 


check(status,list: any){ 
     if(status) { 
      this.cart.push(list.cost); 
     } 
     console.log(this.cart); 
} 

注:其他部分的处理没有完成。

LIVE DEMO

如果你想总和,我倒是不使用数组,而是一个变量,例如名为totalSum

totalSum = 0; 
在迭代

,请执行阿拉汶和建议使用[ngModel](ngModelChange)

<div *ngFor= "let list of lists" > 
    <input type="checkbox" (ngModelChange)="check($event, list.cost)" 
      [ngModel]="list.checked" />{{list.name}} 
</div> 

然后你check方法是这样的:

check(isChecked, cost){ 
    if(isChecked) { 
    this.totalSum += cost; 
    } else { 
    this.totalSum -= cost; 
    } 
} 

在这里我们简单地说,检查复选框被选中,如果是这样,添加到总和,如果没有,从totalSum减去值。

DEMO