如何在 smart table 中按小数到大数排序?

How to sort by smaller Numbers to Larger Numbers in smart table?

以下是我的代码,当用户点击第th个标题时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' },
  ]

下面是我的fiddle演示,谢谢
Fiddle

可以使用

$scope.data.sort((a, b) => a.ID - b.ID)

问题是您的 ID 是一个字符串,所以它排序的是 alpha 而不是数字。

将所有 ID 更改为一个数字,或者如果您不想做这项工作,请在分配数组后插入:

$scope.data.forEach(o=>o.ID=+o.ID)

https://jsfiddle.net/qwc5s6qt/6/

否则,请更新数据或您的 Angular getter 以获得自定义排序功能。