我的目标是编写一个 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;
}
如何添加第二个标准?
似乎排序功能更像是“按键提取功能”。因此,您不能只连接字符串值,因为这会破坏排序。但是,您可以像使用列名一样传递多个排序函数。它不在官方文档中,但来源很简单。
我认为您唯一的选择是像使用排序列一样传递两个排序函数:
<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;
}