Je suis nouveau à Angularjs. J'affiche la liste des éléments en utilisant ng-repeat. comment en calculer la somme? y at-il une méthode simple pour le calculer en HTML en utilisant l'expression?
name numberofyears amount interest
xxx 2 4000 4%
yyy 3 3000 10%
zzz 5 6000 6%
Total 10 13000 16%
Les trois premières lignes proviennent de la répétition ng.Je veux juste calculer le total comme indiqué ci-dessus. Merci d'avance
Ceci est assez similaire à Calculer la somme des éléments répétés dans AngularJS ng-repeat cette question. Mais pas exactement. J'essaie de calculer en utilisant l'expression car j'ai beaucoup de lignes
Il est possible de le faire, mais je pense que ce type de logique convient le mieux à votre contrôleur. Quoi qu’il en soit, c’est un moyen possible de réaliser ce que vous avez demandé avec ng-init:
<table ng-init="items.total = {}">
<tr>
<td>name</td>
<td>numberofyears</td>
<td>amount</td>
<td>intrest</td>
</tr>
<tr ng-repeat="item in items">
<td>{{item.name}}</td>
<td ng-init="items.total.numberofyears = items.total.numberofyears + item.numberofyears">{{item.numberofyears}}</td>
<td ng-init="items.total.amount = items.total.amount + item.amount">{{item.amount}}</td>
<td ng-init="items.total.interest = items.total.interest + item.interest">{{item.interest}}%</td>
</tr>
<tr>
<td>Total</td>
<td>{{items.total.numberofyears}}</td>
<td>{{items.total.amount}}</td>
<td>{{items.total.interest}}%</td>
</tr>
</table>
Faites le calculateur dans le contrôleur, vous pouvez alors ajouter <tr ng-if="$last"> </tr>
dans ng-repeat
et afficher le résultat final.
contrôleur e.x - simple
function sum (object) {
var data = object;
var tmpSum
for (var i in object){
tmpSum =+ object[i].value;
}
$scope.sum = tmpSum
};
voir e.x
<tr ng-if="$last">{{sum}} </tr>
Comme le mentionnent les commentaires, vous feriez la somme dans votre contrôleur et afficheriez la valeur ajoutée après votre répétition.
https://docs.angularjs.org/api/ng/directive/ngRepeat
La directive ngRepeat instancie un modèle une fois par élément d'une collection.
Ainsi, ng-repeat est destiné au rendu et ne serait pas l'endroit idéal pour la logique métier.