2016-06-12 8 views
0

Hallo, ich bin neu in AngularJS ich ein Problem bei der Berechnung haben die Summe des Feldes ist mein Code wie dieserAngularJS ng-repeat Summe die Felder

<div ng-repeat="(key,item) in expenses_data | groupBy: 'category_name'"> 

    <h4 ng-cloak><i class="fa fa-plus-circle"></i> {{ key }}</h4> 

    <div class="form-group" ng-repeat="expn_head in item"> 
    <label class="col-sm-3 control-label">{{ expn_head.name }}</label> 
    <div class="col-sm-2"> 
     <input type="text" class="form-control input-sm" ng-model="expenses.expenditure_head[expn_head.id]"> 
    </div> 
    </div> 

</div> 

Wie kann ich resümieren alle expenses.expenditure_head Wert eingegeben und setze es in das neue Textfeld. Gibt es eine Funktion wie folgt:

<input type=text ng-value="{{ sum() }}"> 

und js

$scope.sum = function() { 

    var total = 0; 

    for (var i = 0; i < $scope.expenses.expenditure_head; i++) { 
    var myValue = $expenses.expenditure_head[i]; 
    total += myValue; 
    } 
    return total; 
} 

json

[ 
{ 
"id":23, 
"name":"Agency Commission", 
"expenditure_category_id":1, 
"category_name":"Main" 
}, 
{ 
"id":22, 
"name":"Bonus to Local Staff", 
"expenditure_category_id":1, 
"category_name":"Main" 
}, 
{ 
"id":48, 
"name":"Advance for Expenses", 
"expenditure_category_id":2, 
"category_name":"Other Dept's Budget Exp" 
}, 
{ 
"id":49, 
"name":"Agency TDS", 
"expenditure_category_id":2, 
"category_name":"Other Dept's Budget Exp" 
} 

]

Kann mir jemand in die richtige Richtung zeigen? Ich versuche es für einen Tag.

+1

Überprüfung dieser, kann es Ihnen helfen. http://stackoverflow.com/questions/22731145/calculating-sum-of-repeated-elements-in-angularjs-ng-repeat – Deep

Antwort

1

Der richtige Weg ist, dies in der Steuerung zu tun. Erstellen Sie eine Funktion aufrufen, es getSum()

$scope.getSum = function(){ 
     var total = 0; 
     for(var i = 0; i < $scope.someVar; i++){ 
     var myValue = $someVar[i]; 
     sum += myValue; 
     } 
     return sum; 
    }; 

dann in Ihrem Code, den Sie tun so etwas wie

<td>Total: {{ getSum() }}</td> 
+0

leider funktioniert es nicht für mich – sanu

+0

können Sie bitte stellen Sie mir html auch – sanu

+0

Total: { {getSum()}} geht in Ihre Vorlage – irimawi