我在排序包含不是英文字母的字符串时遇到问题(š,č,ž,..)
这是小提琴:http://fiddle.jshell.net/vhhgh/
这些字母来自斯洛文尼亚字母.
已经有一段时间了,但我找到了其他的解决方案:小提琴
HTML:
<div ng-app='test'> <h2>Users</h2> <div ng-controller="UsersCtrl"> <ul> <li ng-repeat="user in users | localeCompareString"> {{user.surname}} {{user.name}} </li> </ul> </div> </div>
JS:
(function(angular) { 'use strict'; var test=angular.module('test',[]) .controller('UsersCtrl', ['$scope',function($scope) { $scope.users = [ {name:'Ben', surname:'Živkovi?'}, {name:'Ken', surname:'AlGore'}, {name:'Erica', surname:'?erv'}, {name:'Jane', surname:'Šinigoj'}, {name:'Kevin', surname:'Sort'}, {name:'Roger', surname:'Willson'}, {name:'Kim', surname:'Zorro'} ]; }]).filter('localeCompareString',function(){ return function (items) { //window.console.log(items); items.sort(function (a, b) { return a.surname.localeCompare(b.surname); }); return items; }; }); })(window.angular);