我想计算角度大括号语法中动态数量变量的总和。
我通常会使用的for循环看起来像:
var total = 0;
for(x=0; x< objects.length; x++) {
total += objects[x].num;
}
我想将其重新创建为{{ total }}
或{{total()}}
,并在其中一个变量发生更改时进行全面更新。
答案 0 :(得分:0)
以下是您要找的内容:JSFiddle
<强> HTML 强>
<div ng-app="myApp" ng-controller="ctrl" ng-strict-di>
{{total()}}<br/>
<input type="text" ng-model="item.num" ng-repeat="item in objects"/>
</div>
JS:
angular.module('myApp',[]).controller('ctrl',function($scope) {
angular.extend($scope,{
objects:[
{num:7},
{num:8},
{num:9}
],
total : function(){
var res = 0;
for (var i=0;i<$scope.objects.length;i++)
res+=parseInt($scope.objects[i].num);
return res;
}
});
});
<强>更新强> 要测试它是否使用以下代码更新对象数量更新的总数:
setInterval(function() {
$scope.objects[1].num++;
$scope.$apply();
},500); //increase num of 2nd object by 1, every half of second
要测试添加新对象时是否仍在更新,请使用以下代码进行测试:
setInterval(function() {
$scope.objects.push({num:Math.floor(Math.random()*100)});
},5000); //Add new object, with random num: value, every 5 seconds