角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中删除成本。我不知道是怎么做到的。请帮忙。谢谢! 它是如何做到的?
答
您应该使用[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);
}
注:其他部分的处理没有完成。
答
如果你想总和,我倒是不使用数组,而是一个变量,例如名为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
减去值。
它怎么与答案走,要么做帮你? :) – Alex