我有四个表头:
$scope.headers = ["Header1", "Header2", "Header3", "Header4"];
我希望能够通过单击标题对表格进行排序。
所以如果我的桌子是这样的
H1 | H2 | H3 | H4
A H D etc....
B G C
C F B
D E A
然后我点击
H2
我的桌子现在看起来像这样:
H1 | H2 | H3 | H4
D E A etc....
C F B
B G C
A H D
也就是说,每列的内容永远不会改变,但是通过单击我要对列进行排序的标题,行将自行重新排序。
我的表的内容是通过Mojolicious完成的数据库调用创建的,并通过以下方式返回到浏览器:
$scope.results = angular.fromJson(data); // This works for me so far
我拼凑的其余代码看起来像这样:
<table class= "table table-striped table-hover">
<th ng-repeat= "header in headers">
<a> {{headers[$index]}} </a>
</th>
<tr ng-repeat "result in results">
<td> {{results.h1}} </td>
<td> {{results.h2}} </td>
<td> {{results.h3}} </td>
<td> {{results.h4}} </td>
</tr>
</table>
从现在开始,如何通过单击表顶部的标题来对列进行排序?
我认为我创建的这个有效的CodePen示例将向您确切显示如何做所需的事情。
模板:
<section ng-app="app" ng-controller="MainCtrl">
<span class="label">Ordered By: {{orderByField}}, Reverse Sort: {{reverseSort}}</span><br><br>
<table class="table table-bordered">
<thead>
<tr>
<th>
<a href="#" ng-click="orderByField='firstName'; reverseSort = !reverseSort">
First Name <span ng-show="orderByField == 'firstName'"><span ng-show="!reverseSort">^</span><span ng-show="reverseSort">v</span></span>
</a>
</th>
<th>
<a href="#" ng-click="orderByField='lastName'; reverseSort = !reverseSort">
Last Name <span ng-show="orderByField == 'lastName'"><span ng-show="!reverseSort">^</span><span ng-show="reverseSort">v</span></span>
</a>
</th>
<th>
<a href="#" ng-click="orderByField='age'; reverseSort = !reverseSort">
Age <span ng-show="orderByField == 'age'"><span ng-show="!reverseSort">^</span><span ng-show="reverseSort">v</span></span>
</a>
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="emp in data.employees|orderBy:orderByField:reverseSort">
<td>{{emp.firstName}}</td>
<td>{{emp.lastName}}</td>
<td>{{emp.age}}</td>
</tr>
</tbody>
</table>
</section>
JavaScript代码:
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {
$scope.orderByField = 'firstName';
$scope.reverseSort = false;
$scope.data = {
employees: [{
firstName: 'John',
lastName: 'Doe',
age: 30
},{
firstName: 'Frank',
lastName: 'Burns',
age: 54
},{
firstName: 'Sue',
lastName: 'Banter',
age: 21
}]
};
});
问题内容: 我需要对一个包含每个人年龄的数组列表进行排序,但是我必须打印出一个65岁以上的人的列表。我知道如何用SQL而不是Java来做到这一点。任何帮助,将不胜感激。谢谢! 问题答案: 首先,请确保您已充分说明了问题,然后考虑首先要使用的算法(不是特定于语言的);然后实施算法。 如果问题仅在于列出年龄在65岁以上(不是65岁或65岁以上)的所有人员,则只需要遍历该数组,并针对每一行检查年龄是否符
我有一个班的学生有以下领域: 字段“状态”可以有2个值:1。现在,2。缺席的 然后我有一个可观察的列表: 因此,我将学生存储在这个列表中。每个学生都有出席或缺席状态。 我需要按状态对这个观察列表进行排序。我希望目前状态的学生在该列表中名列第一。 有什么建议吗? 如果有任何帮助,我将不胜感激。
问题内容: 我想具有重新排列表中的行的功能(使用拖放对行进行排序)。 并且行排列的索引在模型中也应更改。 如何 使用Angular Directive 做类似的事情:http : //jsfiddle.net/tzYbU/1162/? 我正在生成表为: 问题答案: 我做的。请参阅下面的代码。 的HTML 指令(JS)
问题内容: 我有一个Java对象列表,希望根据多个字段进行排序。 是否可以使用或接口根据多个字段对列表进行排序?我看到的所有示例仅根据一个领域进行排序。换句话说,可以按“校园”或“教师”或“建筑”进行排序。我想按“校园”,“教师”,“建筑”(因为它在SQL中存在)进行排序 问题答案: 您的比较器如下所示: 基本上,只要到目前为止已比较的属性相等(),它就会继续比较类的每个连续属性。
问题内容: 我想按长度顺序排列一个ArrayList字符串,而不仅仅是数字顺序。 例如,该列表包含以下单词: 需要根据它们的长度差异将它们排序为特殊字符串,例如: 因此最终列表如下所示(方括号中的差异): 问题答案: 使用自定义比较器: 然后使用对列表进行排序。