计算ng重复值的总和Angularjs
我是Angularjs的新手。我正在使用ng-repeat显示项目列表。如何计算它的总和?有什么简单的方法来计算它在html中使用表达式?计算ng重复值的总和Angularjs
name numberofyears amount interest
xxx 2 4000 4%
yyy 3 3000 10%
zzz 5 6000 6%
Total 10 13000 16%
前三行是从ng repeat.I只是想要计算总和如上所示。在此先感谢
这与Calculating sum of repeated elements in AngularJS ng-repeat这个问题非常相似。但不完全。我试图计算使用表达式,因为我有很多行
正如评论提到 - 你会在你的控制器中总结并显示ng-repeat后的总和值。
https://docs.angularjs.org/api/ng/directive/ngRepeat
的ngRepeat指令从集合实例每个项目一次的模板。
因此,ng-repeat用于渲染,并不是业务逻辑的地方。
感谢您的回复。我有大约9栏和来自Db的大约50个数据。每一列我都必须调用函数给控制器呃? – 2014-09-03 14:07:07
是的,你循环每个项目,并总结出你想要的值。例如在你的控制器中'$ scope.total = mySum;'然后你在你的ng-repeat下面增加一行来显示总数。有很好的图书馆,如lodash,可以帮助数据总结非常简单,例如'$ scope.mySum = _.reduce(myArray,function(sum,myRecord){return _ + myRecord.amount; });'http://lodash.com/docs#reduce – pherris 2014-09-03 14:14:45
我不喜欢解决方案,有很多数据,这是昂贵的,想象一下旧的智能手机。但是ng-repeat并不是更好。也许你应该在获得数据时总结服务器端。 – amdev 2016-07-13 14:48:32
做数学题的控制器,那么你可以添加<tr ng-if="$last"> </tr>
在ng-repeat
并显示最终结果
控制器前 - 简单的一周
function sum (object) {
var data = object;
var tmpSum
for (var i in object){
tmpSum =+ object[i].value;
}
$scope.sum = tmpSum
};
视图前
<tr ng-if="$last">{{sum}} </tr>
它有可能做到这一点,但我认为这种逻辑最适合您的控制器。总之,这是实现的一个可能的方式,你问什么使用NG-INIT:在AngularJS重复计算元素的总和NG-重复]的
<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>
很好的答案,对我来说就像一个魅力! – 2015-10-01 11:36:23
@wawy我试过这个,它显示items.total为空数组。它不会将数据存储到其中。能否请你帮忙。我也没有得到任何错误 – codelearner 2016-03-21 08:52:55
可能重复(http://stackoverflow.com/questions/22731145/calculation-sum-of-repeated-elements-in-angularjs-ng-repeat) – Dalorzo 2014-09-03 13:50:29
[其他帖子关于值的总和](http://stackoverflow.com/q/23842979/1959948) – Dalorzo 2014-09-03 13:51:11
我看到了。是否有可能在HTML本身而不是去控制器计算。我有大约9列需要很长时间@Dalorzo – 2014-09-03 13:54:26