Javascript/AngularJS - 按顺序将字符串转换为数字

标签 javascript html angularjs

我有一个简单的问题。当我尝试订购 ID 时,它的订购方式如下

1,12,13,2,20

所以我认为它假定这是一个字符串。

我尝试使用数字但没有任何帮助。

我能做什么?

<th class="text-center">
    Ticket ID&nbsp;
    <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/

相关文章:

javascript - JQuery ON 选择器不起作用

javascript - 是否可以仅使用 css3 淡入新创建的元素?

javascript - ajax响应没有写入html页面怎么办?

javascript - 调用服务函数 : Not Populating Scope On First Execution

javascript - 防止页面重新加载后在复选框上触发更改事件

javascript - Highcharts、ROR、如何让标签发挥作用

javascript - 如何获取我的系统的用户名并将其呈现在浏览器上

html - 通过 css 修改表格

javascript - AngularJS 中依赖表单验证的单元测试 Controller

jquery - 无法在下拉剑道网格 Angular 1 的更改事件中更新文本框值