我有一个简单的问题。当我尝试订购 ID 时,它的订购方式如下
1,12,13,2,20
所以我认为它假定这是一个字符串。
我尝试使用数字但没有任何帮助。
我能做什么?
头
<th class="text-center">
Ticket ID
<a uib-tooltip="Sort by" ng-click="vm.sortBy('TICKET_ID');">
<i class="glyphicon glyphicon-sort pull-right"></i>
</a>
</th>
正文
<tr class="text-center" ng-repeat="ticket in filteredTickets = (vm.tickets |
orderBy : vm.propertyName : vm.reverse |
filter : vm.search |
limitTo : vm.itemsPerPage : vm.itemsPerPage * (vm.currentPage-1))">
<td>{{ticket.TICKET_ID | number}</td>
<!-- 'number' doesn't help... -->
Controller
// table ordering
vm.propertyName = 'TICKET_ID';
vm.reverse = false;
vm.sortBy = function(propertyName) {
vm.reverse = !vm.reverse;
vm.propertyName = propertyName;
};
最佳答案
只需将字符串值转换为 int 并让 angularjs 的 orderBy 过滤器为您完成这项工作
$scope.getNumber = function(row){
return parseInt(row.TICKET_ID);
};
<tr class="text-center" ng-repeat="ticket in tickets | orderBy:getNumber:true">
orderBy 还采用第二个参数(true/false)进行 asc/desc 排序
关于Javascript/AngularJS - 按顺序将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51174899/