Angular 中具有未定义值的自定义过滤器
Custom filter in Angular with undefined values
我在 Angular 中有一个对象数组,我正在尝试以一种非常具体的方式对它们进行排序,但我无法弄清楚。
这是示例 Javascript:
var app = angular.module('app', []);
function Ctrl($scope) {
$scope.divisions = [
{'group':'d','sub':1},
{'group':'a'},
{'group':'z','sub':2},
{'group':'g','sub':20},
{'group':'g'},
{'group':'r','sub':11}];
}
这是示例 HTML:
<div class="test" ng-controller="Ctrl">
<div ng-repeat="division in divisions | orderBy:['sub','group']">{{division.group}}-{{division.sub}}</div>
<div>
这是 fiddle:https://jsfiddle.net/r4nsyp2v/1/
而不是像这样显示:
d-1
z-2
r-11
g-20
a-
g-
我希望它显示为:
g-20
r-11
z-2
d-1
a-
g-
所以我想从最大到最小显示 'sub' 键(如果存在),然后是未定义的 'sub' 键。并按组的字母顺序显示具有未定义 'sub' 键的对象。
我还没有找到诀窍....有什么想法吗?
您可以像这样创建自定义订单:
$scope.order = function(division) {
return -(division.sub || 0);
}
并且在 HTML
<div ng-repeat="division in divisions | orderBy:order">
我在 Angular 中有一个对象数组,我正在尝试以一种非常具体的方式对它们进行排序,但我无法弄清楚。
这是示例 Javascript:
var app = angular.module('app', []);
function Ctrl($scope) {
$scope.divisions = [
{'group':'d','sub':1},
{'group':'a'},
{'group':'z','sub':2},
{'group':'g','sub':20},
{'group':'g'},
{'group':'r','sub':11}];
}
这是示例 HTML:
<div class="test" ng-controller="Ctrl">
<div ng-repeat="division in divisions | orderBy:['sub','group']">{{division.group}}-{{division.sub}}</div>
<div>
这是 fiddle:https://jsfiddle.net/r4nsyp2v/1/
而不是像这样显示:
d-1
z-2
r-11
g-20
a-
g-
我希望它显示为:
g-20
r-11
z-2
d-1
a-
g-
所以我想从最大到最小显示 'sub' 键(如果存在),然后是未定义的 'sub' 键。并按组的字母顺序显示具有未定义 'sub' 键的对象。
我还没有找到诀窍....有什么想法吗?
您可以像这样创建自定义订单:
$scope.order = function(division) {
return -(division.sub || 0);
}
并且在 HTML
<div ng-repeat="division in divisions | orderBy:order">