2014-10-17 3 views
0

Я хочу рассчитать общую сумму динамического числа переменных в синтаксисе привязки углов.AngularJS вычислить динамическое число переменных в фигурных скобках

для цикла я обычно использую будет выглядеть так:

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

Я хотел бы, чтобы воссоздать это как {{ total }} или {{total()}} и имеют полное обновление, когда-либо один из переменных изменяется.

ответ

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; 
     } 
    }); 
}); 

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 
+0

Nice! Здесь '.extend' нужен? –

+0

Нет, это просто хороший способ сделать $ scope.objects = ... и $ scope.total = ... что я обычно использую – jevgenig

+0

Будет ли это автоматическое обновление при изменении одной из переменных? Или мне придется перезапустить расчет. –

Смежные вопросы