Javascript 如何使用angularjs中的sortBy过滤器对波兰字符进行排序?

Javascript 如何使用angularjs中的sortBy过滤器对波兰字符进行排序?,javascript,angularjs,angularjs-1.6,Javascript,Angularjs,Angularjs 1.6,我有个问题。Angularjs 1方法中的“sortBy”不按字母顺序排列波兰字符。它应该被分类:阿尔弗雷德,阿里斯,伯特,乔拉,朵拉。事实上,有:阿尔弗雷德、伯塔、多拉、赫里斯、奥拉 index.html <!DOCTYPE html> <html ng-app="app"> <head> <link data-require="bootstrap-css@*" data-semver="3.1.1" rel="stylesheet"

我有个问题。Angularjs 1方法中的“sortBy”不按字母顺序排列波兰字符。它应该被分类:阿尔弗雷德,阿里斯,伯特,乔拉,朵拉。事实上,有:阿尔弗雷德、伯塔、多拉、赫里斯、奥拉

index.html

<!DOCTYPE html>
<html ng-app="app">

  <head>
    <link data-require="bootstrap-css@*" data-semver="3.1.1" rel="stylesheet"
          href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
    <script data-require="angular.js@1.2.10" data-semver="1.2.14"
            src="http://code.angularjs.org/1.2.14/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script type="text/javascript" src="script.js"></script>
  </head>

  <body ng-controller="MainCtrl">

    <div>
      Order By:
      <select ng-model="sortorder">
          <option selected>Name</option>
          <option value="Age">Age</option>
      </select>
      <br>
      <table style="width:300px">
          <tr>
            <td>Name</td>
            <td>Age</td>      
          </tr>
          <tr ng-repeat="contact in contacts | orderBy:sortorder">
            <td>{{contact.Name}}</td>     
            <td>{{contact.Age}}</td>
          </tr>
      </table>              
      </div>  

  </body>

</html>

示例:

orderBy的默认比较器不像您发现的那样对区域设置敏感。您可以通过传入自定义比较器来获得所需的顺序。我注意到你已经用版本1.6标记了这个版本,但是在你的Plunker中你引用了1.2

比较器占用第三个参数
orderBy

orderBy:<expression>:<reverse>:<comparator>
如果您向
$scope.contacts
添加任何需要排序的额外属性,请确保扩展comparator以处理数据类型

orderBy:<expression>:<reverse>:<comparator>
$scope.comparator = function (a, b) {
    if (a.type === 'string' && b.type === 'string') {
        return a.value.localeCompare(b.value);
    }
    return a.value - b.value;
};