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связывается первый элемент; - переменная
varscoped к текущему узлу и очищается после выхода из него.