按自定义列表对 ng-repeat 标签进行排序?
Sort ng-repeat tags by custom list?
我的 ng-repeat 显示大数据,在 groupBy 之后它分成 5 个 div
<div ng-repeat=" (key, value) in gamesList | groupBy: 'id' ">...</div>
ID 值为
{ '1' , '2' , '3' , '4' , '5' }
结果它从 min 到 max 排序。
如何使用我的自定义规则进行排序,如下所示:
{'5' , '2' , '4' , '1' , '3' }
您可以使用 sort()
函数而不是过滤器对数据进行排序。
你必须这样定义你的规则:
var myRule = {'5':1,'2':2,'4':3,'1':4,'3':5}
然后您必须对您的数据应用自定义规则。
scope.gameList=scope.gameList.sort(function(a,b){
return myRule[a.id]>myRule[b.id];
});
您可以使用自定义过滤器来执行此操作,如下所示:
myApp.filter('myFilter', function() {
return function(input) {
var output;
var myRule = {'5':1,'2':2,'4':3,'1':4,'3':5};
output = input.sort(function(a, b) {
return myRule[a.id]>myRule[b.id];
});
return output;
}
});
并且您可以像这样应用您的自定义过滤器:
<div ng-repeat="d in data | myFilter">
Here 是 plunker 的一个例子。
希望对您有所帮助!
我的 ng-repeat 显示大数据,在 groupBy 之后它分成 5 个 div
<div ng-repeat=" (key, value) in gamesList | groupBy: 'id' ">...</div>
ID 值为
{ '1' , '2' , '3' , '4' , '5' }
结果它从 min 到 max 排序。
如何使用我的自定义规则进行排序,如下所示:
{'5' , '2' , '4' , '1' , '3' }
您可以使用 sort()
函数而不是过滤器对数据进行排序。
你必须这样定义你的规则:
var myRule = {'5':1,'2':2,'4':3,'1':4,'3':5}
然后您必须对您的数据应用自定义规则。
scope.gameList=scope.gameList.sort(function(a,b){
return myRule[a.id]>myRule[b.id];
});
您可以使用自定义过滤器来执行此操作,如下所示:
myApp.filter('myFilter', function() {
return function(input) {
var output;
var myRule = {'5':1,'2':2,'4':3,'1':4,'3':5};
output = input.sort(function(a, b) {
return myRule[a.id]>myRule[b.id];
});
return output;
}
});
并且您可以像这样应用您的自定义过滤器:
<div ng-repeat="d in data | myFilter">
Here 是 plunker 的一个例子。 希望对您有所帮助!