Javascript AngularJS自定义排序
如果我有一个值数组: [1,2,3,4,不适用,不适用,不适用] 如何使用orderBy创建自定义排序,以便字符串始终显示在底部 升序示例: [1,2,3,4,不适用,不适用,不适用] 降序示例: [4,3,2,1,不适用,不适用,不适用]Javascript AngularJS自定义排序,javascript,angularjs,angularjs-orderby,Javascript,Angularjs,Angularjs Orderby,如果我有一个值数组: [1,2,3,4,不适用,不适用,不适用] 如何使用orderBy创建自定义排序,以便字符串始终显示在底部 升序示例: [1,2,3,4,不适用,不适用,不适用] 降序示例: [4,3,2,1,不适用,不适用,不适用] 我尝试过使用函数表达式,但这并不能满足我的需要。函数表达式仅返回要排序的值,但如何使用自己的排序顺序?您可以创建自定义筛选器,根据需要对数组进行排序 app.filter('customOrderBy', function () { return fu
我尝试过使用函数表达式,但这并不能满足我的需要。函数表达式仅返回要排序的值,但如何使用自己的排序顺序?您可以创建自定义筛选器,根据需要对数组进行排序
app.filter('customOrderBy', function () {
return function (arr) {
var numbers = [];
var strings = [];
angular.forEach(arr, function(item){
if(typeof item == 'number' ){
numbers.push(item);
}
else
strings.push(item);
});
return numbers.sort().concat(strings);
};
});
阵列上的ng repeat如下所示:
<div ng-repeat="item in array | customOrderBy track by $index">
请注意,我在这里使用了“track by$index”,因为AngularJS ng repeat指令不允许在中继器中重复。(数组中有重复的“n/a”字符串)
Plunker在这里按升序排列原始数组中的数字[2,3,1,4',n/a',n/a',n/a']:非常感谢,我是angular新手,这正是我需要的。