我从数据库中检索了JSON
[{"id":1,"firstname":"Alan Cayetano","numbers":2},{"id":2,"firstname":"Bong Marcos","numbers":0},{"id":3,"firstname":"I Dont Care","numbers":3},{"id":4,"firstname":"toto tata","numbers":0},{"id":5,"firstname":"titi terter","numbers":0},{"id":6,"firstname":"Ian Go","numbers":0}]
这是在表格结果
中显示的结果firstname lastname numbers
Alan Cayetano 10
Bong Marcos 4
Ian Go 3
What Ever 0
我只想要具有最高数值的数据 在这种情况下
firstname lastname numbers
Alan Cayetano 10
此数据是从数据库
动态获取的我的angular.js
<script src="//code.angularjs.org/1.4.8/angular.js"></script>
<script>
var app = angular.module('myApp', []);
app.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('//');
$interpolateProvider.endSymbol('//');
});
app.controller('customersCtrl',['$scope','$http',function($scope, $http) {
//$http.get("http://localhost:8093/voters/voters_angular")
$http.get("{{ path('vp_president') }}")
.success(function (response) {
$scope.names= JSON.parse(response);
});
}]);
//console.log(names);
</script>
表
<div ng-app="myApp" ng-controller="customersCtrl">
<table class="table">
//names//
<thead>
<tr>
<th>Firsname</th>
<th>Lastname</th>
<th>NUm</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="x in names">
<td>//x.firstname//</td>
<td>//x.lastname//</td>
<td>//x.numbers//</td>
</tr>
</tbody>
</table>
</div>
如何实现这一目标?我还在学习Angular Js 我想知道Angular的$ last过滤器是否适用于此
答案 0 :(得分:2)
这应该像描述一样工作
<tr ng-repeat="x in names| orderBy:'-numbers' | limitTo:1">
<td>//x.id//</td>
<td>//x.firstname//</td>
<td>//x.numbers//</td>
</tr>
答案 1 :(得分:1)
最好在控制器中找到最大值,而不是在视图中。
function findMax(names) {
var result = null;
for (var i = 0; i < names.length; i++) {
var name = names[i];
if (result == null || name.numbers > result.numbers) {
result = name;
}
}
return result;
}
$scope.name = findMax($scope.names);
并在html中
<tr>
<td>{{name.firstname}}</td>
<td>{{name.lastname}}</td>
<td>{{name.numbers}}</td>
</tr>
在AngularJS中,最好在视图中显示之前预先对数据进行排序,ng-repeat为其重复的每个对象创建一个观察者,在AngularJS中,如果你有许多观察者你的表现,观察者的数量与表现相关联最差。
如果您不需要显示其他值,则无需为该值创建观察者,因此最好对阵列进行预排序。
答案 2 :(得分:1)
你可以这样做:
<tr ng-repeat="x in names | orderBy:numbers:reverse | limitTo:1">
答案 3 :(得分:-1)
您可以使用:
angular.forEach($scope.names, function (value, key) { //code });
使用angular foreach,您可以在$ scope.names中逐行读取,并使用您的逻辑获取msx值。
当:
键 - &gt;是位置(使用警报(键)查看信息)
值 - &gt;是一个json的行。对于获取数据,请使用value.id,value.firstname等