以下是我的代码,当用户单击第一个标题ID时,它将按ID号
(1-> 2-> 3->-11-> 23)排序,
但结果是(1-> 11-> 2-> 23 -> 3)
我希望结果按较小的数字到较大的数字排序或按较大的数字到较小的数字排序...我不想在单个数字中加零.....
<div class='container' ng-app='smarttabledemo' ng-controller='smarttabledemo'>
<h3>Smart-Table</h3>
<table st-table='data' class='table'>
<thead>
<tr>
<th st-sort='ID'>ID</th>
<th st-sort='firstName'>First Name</th>
<th st-sort='lastName'>Last Name</th>
<th st-sort='phone'>Phone Number</th>
<th st-sort='hometown'>Hometown</th>
</tr>
</thead>
<tbody>
<tr st-select-row='row' ng-repeat='row in data'>
<td>{{row.ID}}</td>
<td>{{row.firstName}}</td>
<td>{{row.lastName}}</td>
<td>{{row.phone}}</td>
<td>{{row.hometown}}</td>
</tr>
</tbody>
</table>
</div>
我的json文件
$scope.data = [
{ ID: '3',firstName: 'Sam', lastName: 'Evans', phone: 'Not Provide', hometown: 'Anytown, ST' },
{ ID: '23',firstName: 'Saul', lastName: 'Evans', phone: '555-555-1234', hometown: 'Anytown, ST' },
{ ID: '1',firstName: 'Charlie', lastName: 'Anders', phone: '555-555-9876', hometown: 'Springfield, ST' },
{ ID: '2',firstName: 'Jessica', lastName: 'Cortez', phone: 'Not Provide', hometown: 'Springfield, ST' },
{ ID: '11',firstName: 'Amy', lastName: 'Wood', phone: '555-555-1348', hometown: 'Metroville, ST' },
]
以下是我的小提琴演示,谢谢
小提琴
问题是您ID
是一个字符串,因此它按字母顺序而不是数字进行排序。
将所有更改ID
为一个数字,或者,如果您不想执行此工作,请在分配数组后插入:
$scope.data.forEach(o=>o.ID=+o.ID)
https://jsfiddle.net/qwc5s6qt/6/
否则,为自定义排序功能更新数据或Angular getter。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句