Javascript 如何使用angularjs中的sortBy过滤器对波兰字符进行排序?
我有个问题。Angularjs 1方法中的“sortBy”不按字母顺序排列波兰字符。它应该被分类:阿尔弗雷德,阿里斯,伯特,乔拉,朵拉。事实上,有:阿尔弗雷德、伯塔、多拉、赫里斯、奥拉 index.htmlJavascript 如何使用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"
<!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;
};