Angular пользовательский заголовок ui-grid html

Я пытаюсь добавить глификон-glyphicon-thlist (который я могу щелкнуть и вызвать функцию контроллера) в левой части заголовка по умолчанию. Я взял заголовок по умолчанию и попытался манипулировать им, чтобы сделать это. Заголовок по умолчанию расположен: https://raw.githubusercontent.com/angular-ui/ui-grid/master/src/templates/ui-grid/uiGridHeaderCell.html

Я изменил его на нижеследующее, но в итоге я получаю 2 строки. Верхняя строка имеет мой значок слева, справа - раскрывающийся список сортировки, а затем вторая строка имеет заголовок столбца, который, когда вы нажимаете, переключает сортировку asc/desc. Я не самый лучший в этом, поэтому задаюсь вопросом, как я могу получить все это в одной строке (только одна строка, где мой значок списка находится слева, а рядом с ним находится метка столбца, а затем раскрывающийся список сортировки стрелка).

<div
  role="columnheader"
  ng-class="{ 'sortable': sortable }"
  ui-grid-one-bind-aria-labelledby-grid="col.uid + '-header-text ' + col.uid + '-sortdir-text'"
  aria-sort="{{col.sort.direction == asc ? 'ascending' : ( col.sort.direction == desc ? 'descending' : (!col.sort.direction ? 'none' : 'other'))}}">
  <div
      role="button"
      tabindex="0"
      ui-grid-one-bind-id-grid="col.uid + \'-menu-button\'"
      class="glyphicon glyphicon-th-list"
      ng-if="grid.options.enableColumnMenus && !col.isRowHeader  && col.colDef.enableColumnMenu !== false"
      ng-click="editOptionValues($event)"
      ng-class="{\'ui-grid-column-menu-button-last-col\': isLastCol}"
      ui-grid-one-bind-aria-label="i18n.headerCell.aria.columnMenuButtonLabel"
      aria-haspopup="true">
  </div>
  <div
    role="button"
    tabindex="0"
    class="ui-grid-cell-contents ui-grid-header-cell-primary-focus"
    col-index="renderIndex"
    title="TOOLTIP">
    <span
      class="ui-grid-header-cell-label"
      ui-grid-one-bind-id-grid="col.uid + '-header-text'">
      {{ col.displayName CUSTOM_FILTERS }}
    </span>

    <span
      ui-grid-one-bind-id-grid="col.uid + '-sortdir-text'"
      ui-grid-visible="col.sort.direction"
      aria-label="{{getSortDirectionAriaLabel()}}">
      <i
       ng-class="{ 'ui-grid-icon-up-dir': col.sort.direction == asc, 'ui-grid-icon-down-dir': col.sort.direction == desc, 'ui-grid-icon-blank': !col.sort.direction }"
       title="{{isSortPriorityVisible() ? i18n.headerCell.priority + ' ' + ( col.sort.priority + 1 )  : null}}"
       aria-hidden="true">
     </i>
     <sub
       ui-grid-visible="isSortPriorityVisible()"
       class="ui-grid-sort-priority-number">
       {{col.sort.priority + 1}}
     </sub>
    </span>
  </div>

  <div
    role="button"
    tabindex="0"
    ui-grid-one-bind-id-grid="col.uid + '-menu-button'"
    class="ui-grid-column-menu-button"
    ng-if="grid.options.enableColumnMenus && !col.isRowHeader  && col.colDef.enableColumnMenu !== false"
    ng-click="toggleMenu($event)"
    ng-class="{'ui-grid-column-menu-button-last-col': isLastCol}"
    ui-grid-one-bind-aria-label="i18n.headerCell.aria.columnMenuButtonLabel"
    aria-haspopup="true">
    <i
      class="ui-grid-icon-angle-down"
      aria-hidden="true">
      &nbsp;
    </i>
  </div>

  <div ui-grid-filter></div>
</div>

Это не мой пример, но у него есть шаблон заголовка, поэтому он может работать с:

http://plnkr.co/edit/KitYBfKuRTQppuSRUCh7?p=preview

Ответ 1

  • Чтобы добавить glyphicon glyphicon-list вам просто нужно format ячейку заголовка в HTML, обозначенную headerCellTemplate.
  • Чтобы добавить вызов функции по щелчку glyphicon, вам нужно добавить это в свой контейнер gulp ng-click="grid.appScope.callFunction()".

    DEMO