ngHandsontable: формат даты не работает в директиве hot-column

angularjs angularjs-directive handsontable date-formatting

588 просмотра

1 ответ

Я пытаюсь отформатировать столбец даты следующим образом как с settingsпрямым date-formatатрибутом. Ни то, ни другое не работает. Тип столбца установлен на, dateа предоставленные данные имеют тип date.

    <hot-column data="createdAt" title="'Date'" type="'date'"
          settings="{dateFormat:'DD/MM/YYYY', type: 'date'}"
          date-format="'DD/MM/YYYY'"
          correct-format="true"
          allow-empty="true" read-only></hot-column>

Столбец даты будет просто не отформатирован. Работают другие виды форматирования, такие как numericтипы в столбце Серьезность, использующие format-attribute.

введите описание изображения здесь

Полный код таблицы:

  <hot-table read-only datarows="events" class="table table-bordered table-striped" row-headers="false" manual-column-resize="true">

    <hot-column data="createdAt" title="'Date'" type="'date'"
          settings="{dateFormat:'DD/MM/YYYY', type: 'date'}"
          date-format="'DD/MM/YYYY'"
          correct-format="true"
          allow-empty="true" read-only></hot-column>

    <hot-column data="eventType" title="'Event Type'"></hot-column>
    <hot-column data="user.displayName" title="'User'"></hot-column>
    <hot-column data="ipAddress" title="'IP Address'"></hot-column>
    <hot-column data="severity" title="'Severity'" type="'numeric'" format="'$ 0,0.00'"></hot-column>
    <hot-column data="eventMessage" title="'Message'"></hot-column>
    <hot-column data="" title="'Old data'"></hot-column>
    <hot-column data="" title="'New data'"></hot-column>
  </hot-table>

Используя ngHandsontable 0.12.0, Handsontable 0.26.1.

К сожалению, нет ни одной демоверсии, доступной с использованием date-formatатрибута.

Мой текущий обходной путь - использовать пользовательский рендер и форматировать дату moment()там.

Автор: Mathias Conradt Источник Размещён: 08.11.2019 11:03

Ответы (1)


0 плюса

Решение

Согласно ответам на https://github.com/handsontable/ngHandsontable/issues/178 :

Привет @mathiasconradt, к сожалению, формат даты не работает так же, как формат (для чисел). Эта проблема связана с самой Handsontable, и вы можете отслеживать изменения здесь .

Обходной путь для этой проблемы - вызов метода validateCells после инициализации таблицы. Вынуждает формат даты исправления к другому. Я создал демо здесь .

Используйте on-after-initв представлении:

<hot-table col-headers="true" datarows="ctrl.data" on-after-init="ctrl.onAfterInit">

а также

  this.onAfterInit = function() {
    this.validateCells();
  }

в контроллере.

Автор: Mathias Conradt Размещён: 01.09.2016 08:05
Вопросы из категории :
32x32