как применить сортировку в ui-grid? - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть один проект angularjs, в котором я использую ui-grid.

Как вы можете видеть в моем коде, у меня есть некоторый атрибут в cell-template.Я должен выполнить сортировку на основе " rating-процент ".

Поэтому я пытаюсь написать алгоритм сортировки, который требует свойства row.entity.

Мой вопросвот как я могу добавить процентный рейтинг в row.entity.

Как правильно выполнить сортировку, используя «рейтинг-процент»?

Ниже мой код:

 define([
    'angular'
  ], function (angular) {

    function SelectToolController($scope, $timeout, $filter) {
      var vm = this,
      _gridApi,
      _cellTemplate,
      _columnDefs,
      _starRatingTemplate,
      _starRatingColumn;

 _starRatingTemplate =[
       '<div class="ui-grid-cell-contents ">',
          '<div class="opr-star-rating" >',
            '<opr-star-rating rating-percentage="{{rowRenderIndex}}"',
              'total-count="23"',
              'suffix-display="true"',
              'rating-display="true"',
              'count-display="22">',
            '</opr-star-rating>',
          '</div>',
          '</div>'
      ].join('');

_starRatingColumn = {
          name: 'starRating',
          cellTemplate: _starRatingTemplate,
          displayName: 'Rating',
          enableFiltering: false,
          enableSorting: true,
          cellClass: 'star-column',
          enableHiding: false,
          enableRowSelection: true,
        }
 _columnDefs.push(_starRatingColumn);

})();

1 Ответ

0 голосов
/ 20 ноября 2018

Вы можете определить свою пользовательскую функцию сортировки, а затем связать эту функцию с определением столбца.

 $scope.sortFun=function(a, b) { 
   ///.... your logic
 }

_starRatingColumn = {
      name: 'starRating',
      cellTemplate: _starRatingTemplate,
      displayName: 'Rating',
      enableFiltering: false,
      enableSorting: true,
      cellClass: 'star-column',
      enableHiding: false,
      enableRowSelection: true,
      'sortingAlgorithm': $scope.sortFun
    }

изменить шаблон.

'<div class="ui-grid-cell-contents ">',
      '<div class="opr-star-rating" ng-class="col.colIndex() >',
        '<opr-star-rating rating-percentage="{{row.entity}}"',
          'total-count="23"',
          'suffix-display="true"',
          'rating-display="true"',
          'count-display="22">',
        '</opr-star-rating>',
      '</div>',
      '</div>'
...