Назад

tgx:if#

Условный вывод узла при истинном выражении.

Синтаксис#

<div tgx:if="user">...</div>

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

<div tgx:if="user">...</div>

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

<div tgx:if="session.user">Привет!</div>

Разбор#

Проверяет выражение DSL и скрывает/показывает текущий узел.

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

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

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

  • Тип: пользовательская директива.
  • В sandbox директива tgx:if: разрешена.

Параметры#

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

  • tgx:if — DSL-выражение условия.

По умолчанию#

  • Узел рендерится только при truthy-результате выражения.

Типы#

  • DSL expression -> boolean.

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

  • Не разрывайте цепочку tgx:if -> tgx:else-if -> tgx:else промежуточными узлами.
  • Проверяйте, что в условии используются реальные поля/переменные текущего контекста.

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

  • Пример рендерится без ошибок в sandbox.
  • Значения по умолчанию обработаны (|fallback) там, где данные могут отсутствовать.

См. также#

Важно: DB path-шорткат и ->#

Для path-шортката в tgx:if:

<tgx tgx:if="/faq/<< path >>/*:count">...</tgx>
  • условие проверяется как truthy/falsy;
  • результат запроса не подмешивается в local.

Если внутри ветки нужны поля найденной записи, делайте явную привязку:

<tgx tgx:if="/faq/<< path >> -> faqResolvedDoc">
  << faqResolvedDoc.title >>
</tgx>
  • -> var открывает доступ к данным только через var;
  • для list-результата при -> var связывается первый элемент;
  • переменная var scoped к текущему узлу и очищается после выхода из него.