i used ng-repeat create div based layout records, want first row should not effected while sorting.
say
name age area v 29 c s 20 d d 39 f v 28 p if user click on name (sorting should happen both ways asc , desc) after first row.
result should like
name age area v 29 c d 39 f s 20 d v 28 p i using angular $filter('orderby') sorting
code used:
<div class="heading row titlebar"> <div class="col-md-3 col-sm-3 m-name tog" ng-click="reverse=!reverse;order('user.name', reverse);" data-predicate='name'><h4 class="name on" data-ng-bind="name"></h4></div> <div class="col-md-3 col-sm-3 t-name tog" ng-click="reverse=!reverse;order('user.title', reverse);" data-predicate='title'><h4 data-ng-bind="title"></h4></div> <div class="col-md-4 col-sm-4 s-name tog" ng-click="reverse=!reverse;order('user.userstatus', reverse);" data-predicate='userstatus'><h4 data-ng-bind="status"></h4></div> </div> <div class="profiler complete-profile animation_1" ng-class="{active:show}" id='{{$index}}' ng-repeat="memberlist in recordfield = (list.slice(0,pagesize))"> <div class="table-row clearfix"> /*code*/ </div> </div> js
$scope.order = function(predicate, reverse) { $scope.list = $filter('orderby')($scope.list, predicate, reverse); }; is there configuration can set achieve it.
one way slice first item array, , concatenate rest of filtered sliced array.
$scope.order = function(predicate, reverse) { $scope.list = $scope.list.slice(0, 1) .concat($filter('orderby')($scope.list.slice(1), predicate, reverse)); };
Comments
Post a Comment