javascript - 对字符串数字进行排序,angularjs

标签 javascript angularjs sorting

$scope.units 为我提供了类似的数据

[{"name":"unit 12: Abc","id":"K09A"},{"name":"Unit 4: Xyz","id":"C9J5"},{"name":"Unit 1: Acx","id":"X4C8"},{"name":"unit 4: Kxc","id":"W230"}, .....]

<小时/>

我使用过滤器来调用 ng-repeat 中的名称

ng-repeat="unit in units | orderBy: 'name'"
<小时/>

但它给了我顺序

Unit 1 , 10 , 11, 12, 2, 3, 4, 5, ..

<小时/>

我想我需要解析什么的。但我无法解决这个问题。我可以进行哪些更改才能使其按整数顺序排列。

最佳答案

您需要为 orderBy 过滤器创建一个 getter function,如下所示:

Controller :

$scope.unitOrder = function(unit){ return parseInt(unit.name.split(' ')[1]);}

查看:

ng-repeat="unit in units|orderBy:unitOrder"

Working Example

关于javascript - 对字符串数字进行排序,angularjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26305837/

相关文章:

javascript - Rails Assets 管道需要来自公共(public)文件夹吗?

javascript - 在 react-table 中,我结合了基本的排序和调整大小示例,但想在调整列大小时抑制排序

angularjs - Angular 如何控制来自服务的指令?

C# - 如何通过 linq 对列表字符串编号进行排序?

wpf - ObservableCollection 不对新添加的项目进行排序

javascript - jQuery 没有选择包含 "<"尖括号的 id?

javascript - 如何从 rxjs 中提取某些项目?

angularjs - 如何获取 Protractor 中所有元素的文本

javascript - ng-repeat in Repeat 不重复嵌套对象 Angular

c - 排序功能停止工作,没有任何错误 - C