0
我想计算角度大括号语法中动态数量的变量的总和。AngularJS计算大括号中的变量的动态数量
for循环我通常会使用类似于:
var total = 0;
for(x=0; x< objects.length; x++) {
total += objects[x].num;
}
我想重新创建为{{ total }}
或{{total()}}
和当过其中一个变量发生变化具有全部更新。
我想计算角度大括号语法中动态数量的变量的总和。AngularJS计算大括号中的变量的动态数量
for循环我通常会使用类似于:
var total = 0;
for(x=0; x< objects.length; x++) {
total += objects[x].num;
}
我想重新创建为{{ total }}
或{{total()}}
和当过其中一个变量发生变化具有全部更新。
这里是你正在寻找: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;
}
});
});
UPDATE 为了测试它的更新总对象与代码NUM更新打法是这样的:
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
不错!这里需要'.extend'吗? – 2014-10-17 12:30:00
不,这只是执行$ scope.objects = ...和$ scope.total = ...的好方法,我通常使用 – jevgenig 2014-10-17 12:30:45
当其中一个变量发生更改时,此自动更新是否会自动更新?或者我将不得不重新开始计算。 – 2014-10-17 12:37:34