Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 具有未定义值的角度自定义过滤器_Angularjs_Filter_Angularjs Orderby - Fatal编程技术网

Angularjs 具有未定义值的角度自定义过滤器

Angularjs 具有未定义值的角度自定义过滤器,angularjs,filter,angularjs-orderby,Angularjs,Filter,Angularjs Orderby,我有一个角度的物体数组,我试图用一种非常特殊的方式来排序,但我想不出来 下面是Javascript示例: var-app=angular.module('app',[]) 以下是示例HTML: <div class="test" ng-controller="Ctrl"> <div ng-repeat="division in divisions | orderBy:['sub','group']">{{division.group}}-{{division.sub}

我有一个角度的物体数组,我试图用一种非常特殊的方式来排序,但我想不出来

下面是Javascript示例:

var-app=angular.module('app',[])

以下是示例HTML:

<div class="test" ng-controller="Ctrl">
  <div ng-repeat="division in divisions | orderBy:['sub','group']">{{division.group}}-{{division.sub}}</div>
<div>
我希望它显示为:

g-20
r-11
z-2
d-1
a-
g-
因此,如果存在“sub”键,我想从最大到最小显示它,后面是未定义的“sub”键。并按组的字母顺序显示具有未定义“子”键的对象


我还没有找到窍门……有什么想法吗?

您可以这样创建自定义订单:

$scope.order = function(division) {
  return -(division.sub || 0);
}
在HTML中

<div ng-repeat="division in divisions | orderBy:order">


参见示例

Try
orderBy:['-sub','group']
我想我可以将数组分成两个不同的数组(一个定义了'sub',一个没有),对它们进行排序,然后将它们放回一起。但似乎应该有一种更干净的方法。在执行'-sub'后使用过滤器:
$scope.order = function(division) {
  return -(division.sub || 0);
}
<div ng-repeat="division in divisions | orderBy:order">