angularJs multiple orderBy

时间:2015-12-10 04:26:47

标签: javascript angularjs sorting

我在AngularJs中使用orderBy功能。我的要求是按升序对姓氏进行排序,按降序对名称列进行排序。我可以使用' +'和' - '解决同样的问题。 但我想要一些动态机制来处理这个问题。无论如何我可以利用angularjs解决我的问题,还是应该继续编写我自己的自定义排序功能?

    <tr ng-repeat="contact in contacts | orderBy:['surname','name']:true">

如前所述,代码将解决此问题,

    <tr ng-repeat="contact in contacts | orderBy:['-surname','+name']">

但是这里surname属性会在表被排序时一直动态地改变它的asc / dec。

    <tr ng-repeat="contact in contacts | orderBy:['+salary','+name']">
    <tr ng-repeat="contact in contacts | orderBy:['-age','+name']">

1 个答案:

答案 0 :(得分:0)

您可以使用$ scope中的值来更改ng-repeat子句的顺序。 在ng-repeat中使用orderOptions范围变量进行orderBy过滤。

 <tr ng-repeat="contact in contacts | orderBy:orderOptions">

在控制器范围内设置orderOptions。

$scope.orderOptions = ['+salary','+name']

您可以在需要使用功能时更新oderOptions。表的排序顺序将相应更新。

$scope.orderOptions = ['-age','+name']