AngularJS计算大括号中的动态变量数

时间:2014-10-17 12:20:48

标签: angularjs

我想计算角度大括号语法中动态数量变量的总和。

我通常会使用的for循环看起来像:

var total = 0;
for(x=0; x< objects.length; x++) {
    total += objects[x].num;
}

我想将其重新创建为{{ total }}{{total()}},并在其中一个变量发生更改时进行全面更新。

1 个答案:

答案 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