← Назад

tgx:ajax-download#

Маппинг в data-hx-download для download-ответов.

Синтаксис#

<div tgx:ajax-download="true"></div>

Пример 1: минимум (копипаст для старта)#

<div tgx:ajax-download="true"></div>

Пример 2: реальный сценарий#

<button tgx:ajax-post="/api/v1/site/export" tgx:ajax-download="true">Скачать snapshot</button>

Разбор#

Frontend runtime в htmx:beforeSwap переводит ответ в сценарий скачивания файла.

Когда использовать#

  • Когда нужно обновлять часть страницы без полной перезагрузки (формы, фильтры, списки, таблицы).
  • Когда нужно контролировать UX запроса: куда вставить ответ, по какому событию отправить и как обработать подтверждение.

Поведение в runtime#

  • Тип: пользовательская директива.
  • В sandbox директива tgx:ajax-download: запрещена.
  • Это HTMX-мост: runtime маппит tgx: в соответствующие data-hx- атрибуты.

Параметры#

Обязательные#

  • tgx:ajax-download — включает режим скачивания из HTMX-ответа.

Типы#

  • 1|0, true|false.

Частые ошибки#

  • Ожидать download при обычном JSON-ответе endpoint
  • Не проверять, что endpoint реально возвращает файл

Проверка перед публикацией#

  • У endpoint корректные заголовки для скачивания
  • Для HTMX-запроса включен tgx:ajax-download="true"

См. также#