【发布时间】:2019-06-10 23:31:05
【问题描述】:
我有一个显示记录总数的列表,当过滤单个名称时,它仍然向我显示记录总数,而不是过滤记录的总数。 TRY HERE
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body ng-app="myApp">
name:
<input type="text" ng-model="model_filter">
<hr/>
<table ng-controller="myCtrl" border="1">
<tr ng-repeat="x in records | filter: model_filter">
<td>{{x.Name}}</td>
<td>{{x.Money | currency}}</td>
</tr>
<tr>
<td>TOTAL</td>
<td>{{Total | currency}}</td>
</tr>
</table>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope) {
$scope.records = [
{
"Name": "Rodrigo",
"Money": 10
},
{
"Name": "Rodrigo",
"Money": 25
},
{
"Name": "Arnodl",
"Money": 15
},
{
"Name": "Carlos",
"Money": 5
}
]
$scope.Total = 0;
for (var i = 0; i < $scope.records.length; i++) {
$scope.Total += $scope.records[i].Money;
}
});
</script>
</body>
</html>
结果:
带过滤器:
我的问题
【问题讨论】:
-
@Dementic 不,这是另一个问题,解决方案并查看它
-
如果您单击
Run code snippet,您的代码将准确返回您所要求的内容。旁注:您可以将for循环替换为$scope.total = $scope.records.reduce((a, b) => a.Money + b.Money, 0) -
我试过了,但是不行Withless loop
-
我的错,
$scope.records.reduce((total, b) => total + b['Money'], 0)
标签: javascript angularjs angularjs-ng-repeat angularjs-filter