AngularJS:如何编写两级排序函数

AngularJS:如何编写两级排序函数,angularjs,angularjs-filter,Angularjs,Angularjs Filter,我的目标是编写一个AngularJS排序函数,它的行为类似于MySQL的“ORDER BY column1,column2”。表示:如果“column1”相同,则按“column2”排序 只有一个标准的解决方案是: $scope.myOrderFn = function (item) { return item.column1; } 如何添加第二个标准?似乎排序函数更像是一个“按键排序提取函数”。 因此,您不能只计算字符串值,因为这会破坏排序。 但是,可以像传递列名一样传递多个排序函数。它

我的目标是编写一个AngularJS排序函数,它的行为类似于MySQL的“ORDER BY column1,column2”。表示:如果“column1”相同,则按“column2”排序

只有一个标准的解决方案是:

$scope.myOrderFn = function (item) {
  return item.column1;
}

如何添加第二个标准?

似乎排序函数更像是一个“按键排序提取函数”。 因此,您不能只计算字符串值,因为这会破坏排序。 但是,可以像传递列名一样传递多个排序函数。它不在官方文档中,但它的定义很简单

我认为您唯一的选择是传递两个排序函数,就像传递排序列一样:

模板
似乎排序函数更像是一个“按键排序提取函数”。 因此,您不能只计算字符串值,因为这会破坏排序。 但是,可以像传递列名一样传递多个排序函数。它不在官方文档中,但它的定义很简单

我认为您唯一的选择是传递两个排序函数,就像传递排序列一样:

模板
实际上是这样的:
| orderBy:['-desc'、'+label'、'-id']“
可以按多列排序。@Yoshi:是的。我不清楚。我是说多个排序函数。Stefan-它看起来不错,并且做了它应该做的事情。谢谢。+1实际上是这样的:
| orderBy:['-desc'、'+label'、'-id']
可以按多列进行排序@那是真的。我对此不清楚。我指的是多个排序函数。Stefan-它看起来不错,并且做了它应该做的事情。多谢各位+1.
<div ng-repeat="item in items | orderBy:['column1','column2']">
  {{item.column1}}-{{item.column2}}
</div>

<div ng-repeat="item in items | orderBy:[sort1,sort2]">
  {{item.column1}}-{{item.column2}}
</div>
$scope.sort1 = function (item) {
  return item.column1;
}

$scope.sort2 = function (item) {
  return item.column2;
}