アイテムのリストを英数字順にソートする作業を行っています。orderBy で ng-repeat を使用すると、処理しているデータの種類に応じて、数値またはアルファベット順にソートされる傾向があることがわかりました。ただし、英数字順にはソートされません。
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でそれを行うにはどうすればよいですか?