🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
思路和$filter服务一样,只是arguments.callee变换成$scope.status ![](https://box.kancloud.cn/9ccdfe866c09e31156249f0afc22db35_786x174.png) <body ng-app="model"> <div ng-controller="a"> <table border="1" width="600"> <tr> <td> <button ng-click="orderBy('id')">ID <span ng-if="status.id==false">升序</span> <span ng-if="!status.id==false">降序</span> </button> </td> <td> <button ng-click="orderBy('username')">用户名 <span ng-if="status.username==false">升序</span> <span ng-if="!status.username==false">降序</span> </button> </td> <td> <button ng-click="orderBy('age')">年龄 <span ng-if="status.age==false">升序</span> <span ng-if="!status.age==false">降序</span> </button> </td> </tr> <tr ng-repeat="v in data"> <td>{{v.id}}</td> <td>{{v.username}}</td> <td>{{v.age}}</td> </tr> </table> </div> </body> ~~~ <script> var a = angular.module('model', []); a.controller('a', ['$scope', '$filter', function ($scope, $filter) { $scope.data = [ {id: 1, username: 'iooni', age: 22, status: 1}, {id: 2, username: 'iyyan', age: 32, status: 0}, {id: 3, username: 'ccczc', age: 11, status: 1}]; //记录排序的状态 $scope.status = {'id': false, 'username': false, 'age': false}; $scope.orderBy = function (filed) { $scope.status[filed] = !$scope.status[filed] $scope.data = $filter('orderBy')($scope.data, filed, $scope.status[filed]); } }]); </script> ~~~