因为原始文件未更改,所以我需要在排序表后访问排序数据数组.
有一个gridOptions.ngGrid.filteredData但没有gridOptions.ngGrid.sortedData
如何访问已排序的数组?
解决方法
您可以使用
Underscore.js,而不仅仅是更改网格中数据的外观……如果使用
Underscore.js,则可以添加函数并修改headerCellTemplate,如下所示.
修改headerCellTemplate:
<div class="ngHeaderSortColumn {{col.headerClass}}" ng-style="{'cursor': col.cursor}" ng-class="{ 'ngSorted': !noSortVisible }"> <div ng-click="mySort(col.displayName)" ng-class="'colt' + col.index" class="ngHeaderText">{{col.displayName}}</div> <div class="ngSortButtonDown" ng-show="col.showSortButtonDown()"></div> <div class="ngSortButtonUp" ng-show="col.showSortButtonUp()"></div> <div class="ngSortPriority">{{col.sortPriority}}</div> <div ng-class="{ ngPinnedIcon: col.pinned,ngUnPinnedIcon: !col.pinned }" ng-click="togglePin(col)" ng-show="col.pinnable"></div> </div> <div ng-show="col.resizable" class="ngHeaderGrip" ng-click="col.gripClick($event)" ng-mousedown="col.gripOnMouseDown($event)"></div>
新功能:
$scope.mySort = function (field) { $scope.gridOptions.data = _.sortBy($scope.gridOptions.data,function (item) {return item.field}); };
我对默认模板所做的唯一更改是在第二行,我将ng-click的值从col.sort($event)更改为mySort(col.displayName)