我在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']">
答案 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']