自定义排序顺序不起作用



我想我已经阅读了有关ng-repeat中自定义排序的所有问题和答案,但我仍然无法掌握它。 我做错了什么,我错过了什么?

这是我的控制器代码:

$scope.persons = [
{'name': "Pete", 'eyes': 'green', 'hair': 'blonde', 'part': 1},
{'name': "Dave", 'eyes': 'blue', 'hair': 'red', 'part': 2},
{'name': "Derek", 'eyes': 'blue', 'hair': 'blonde', 'part': 2},
{'name': "Jake", 'eyes': 'brown', 'hair': 'black', 'part': 3},
{'name': "Jeff", 'eyes': 'brown', 'hair': 'darkbrown', 'part': 4},
];
$scope.sortPersons = function(item){
switch(item.eyes){
case 'green': return 2;
case 'blue': return 3;
case 'brown': return 1;
}
}

.HTML:

<div ng-repeat="p in persons | orderBy:sortPersons ">
<p>name: {{p.name}}, eyes: {{p.eyes}}, hair: {{p.hair}}, part: {{p.part}}</p>
</div>

正如你会明白的,我想按照棕色 - 绿色 - 蓝色的顺序对眼睛的颜色进行排序。但是我的代码不是这样工作的。 希望有人能给我一个解决方案。

我已经运行了您的代码,它似乎可以工作

这是我的命令:

name: Jake, eyes: brown, hair: black, part: 3
name: Jeff, eyes: brown, hair: darkbrown, part: 4
name: Pete, eyes: green, hair: blonde, part: 1
name: Dave, eyes: blue, hair: red, part: 2
name: Derek, eyes: blue, hair: blonde, part: 2

你得到的结果是什么?

最新更新