我正在创建一个网络应用,如果有10个数据,我现在可以在我的表中获取费用信息
1)100
2)200
3)300
4)200
5)300
6)400
7)500
8)600
9)900
10)200
所有这些数据都将显示给用户,每个数据都有一个复选框,如
<td>{{a.salary}}</td>
<td><input type="checkbox" ng-click="updatefunction(a)" />
我的复选框正在调用angularjs的控制器
$scope.updatefunction = function (param) {
$scope.updateparam = param;
console.log($scope.updateparam.salary);
$scope.totalsalary = Number($scope.totalsalary) + Number($scope.updateparam.salary);
console.log($scope.totalsalary);
}
在ng-click上将调用此控制器,但如果用户单击两次,则值递增两次,如果我使用ng-checked(1到10),所有条目都在递增,我需要做什么,我想要增加,但如果用户取消选中或多次点击(该值应该减少),
答案 0 :(得分:1)
您需要为复选框字段(ng-model)设置一个标记。
<强> HTML 强>
<input type="checkbox" ng-model="exp.checked"
data-ng-click="calculateTotal(exp)"/>{{exp.salary}}
<强> JS 强>
$scope.calculateTotal = function(exp){
if(exp.checked){
$scope.total += exp.salary;
}else{
$scope.total -= exp.salary;
}
}
您的解决方案是here
答案 1 :(得分:0)
您需要在复选框中使用ng-model
<td><input type="checkbox" ng-click="updatefunction(a)" ng-model="a.checked" />
最初在您的控制器集中
a.checked=false;
因为所有复选框都未选中
$scope.updatefunction = function (param) {
if(param.checked){
$scope.updateparam = param;
console.log($scope.updateparam.salary);
$scope.totalsalary = Number($scope.totalsalary) + Number($scope.updateparam.salary);
console.log($scope.totalsalary);
}else{
$scope.totalsalary = Number($scope.totalsalary) -Number($scope.updateparam.salary);
}
}
希望这能解决您的问题。如果在重新加载页面后的最后一个,您的checked
值未被选中,并且已经选中了任何复选框,那么最后选中check = false