我一直在努力按字母数字对项目列表进行排序。我发现将 ng-repeat 与 orderBy 一起使用往往会根据其处理的数据类型按数字或字母顺序排序。但是,它不按字母数字排序。
JavaScript 代码:
function AppCtrl($scope) {
$scope.items = [
{'name':'School Item 1','address':'1920'},
{'name':'Work Item 2','address':'4192'},
{'name':'Ad Item 5','address':'2039'},
{'name':'Cool Item 45','address':'2090'},
{'name':'Cool Item 50','address':'1029'},
{'name':'Cool Item 100','address':'1829'},
{'name':'Cool Item 400','address':'1728'}
];
}
HTML 代码:
<ul ng-controller="AppCtrl">
<li ng-repeat="item in items|orderBy:['name','address']">
{{item.name}} {{item.address}}
</li>
</ul>
这是小提琴http://jsfiddle.net/roverton/PuYLS/1/
请注意,订购时它将显示 1 然后 100、45 然后 400、5 然后 50 等。我想按字母数字顺序订购这些。我将如何在 AngularJS 中做到这一点?