Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

Условные операторы

Условные операторы позволяют динамически управлять отображением или скрытием содержимого в документе на основе значений данных. Предусмотрены три основных способа записи условий:

  • Встроенные условия: Непосредственно выводят текст (или заменяют его другим текстом).
  • Условные блоки: Отображают или скрывают раздел документа, подходят для нескольких тегов, абзацев, таблиц и т. д.
  • Умные условия: Непосредственно удаляют или сохраняют целевые элементы (например, строки, абзацы, изображения и т. д.) с помощью одного тега, что обеспечивает более лаконичный синтаксис.

Все условия начинаются с форматтера логического сравнения (например, ifEQ, ifGT и т. д.), за которым следуют форматтеры действий (такие как show, elseShow, drop, keep и т. д.).

Обзор

В условных операторах поддерживаются следующие логические операторы и форматтеры действий:

  • Логические операторы

    • ifEQ(value): Проверяет, равно ли значение данных указанному значению.
    • ifNE(value): Проверяет, не равно ли значение данных указанному значению.
    • ifGT(value): Проверяет, больше ли значение данных указанного значения.
    • ifGTE(value): Проверяет, больше или равно ли значение данных указанного значения.
    • ifLT(value): Проверяет, меньше ли значение данных указанного значения.
    • ifLTE(value): Проверяет, меньше или равно ли значение данных указанного значения.
    • ifIN(value): Проверяет, содержится ли значение данных в массиве или строке.
    • ifNIN(value): Проверяет, не содержится ли значение данных в массиве или строке.
    • ifEM(): Проверяет, пусты ли данные (например, null, undefined, пустая строка, пустой массив или пустой объект).
    • ifNEM(): Проверяет, не пусты ли данные.
    • ifTE(type): Проверяет, равен ли тип данных указанному типу (например, "string", "number", "boolean" и т. д.).
    • and(value): Логическое "И", используется для соединения нескольких условий.
    • or(value): Логическое "ИЛИ", используется для соединения нескольких условий.
  • Форматтеры действий

    • :show(text) / :elseShow(text): Используются во встроенных условиях для непосредственного вывода указанного текста.
    • :hideBegin / :hideEnd и :showBegin / :showEnd: Используются в условных блоках для скрытия или отображения разделов документа.
    • :drop(element) / :keep(element): Используются в умных условиях для удаления или сохранения указанных элементов документа.

В следующих разделах представлена подробная информация о синтаксисе, примеры и результаты для каждого варианта использования.

Встроенные условия

1. :show(text) / :elseShow(text)

Синтаксис
{данные:условие:show(текст)}
{данные:условие:show(текст):elseShow(альтернативный текст)}
Пример

Предположим, данные:

{
  "val2": 2,
  "val5": 5
}

Шаблон выглядит следующим образом:

val2 = {d.val2:ifGT(3):show('high')}
val2 = {d.val2:ifGT(3):show('high'):elseShow('low')}
val5 = {d.val5:ifGT(3):show('high')}
Результат
val2 = 2
val2 = low
val5 = high

2. Конструкция Switch Case (Множественные условия)

Синтаксис

Используйте последовательные форматтеры условий для создания структуры, похожей на switch-case:

{данные:ifEQ(значение1):show(результат1):ifEQ(значение2):show(результат2):elseShow(результат по умолчанию)}

Или достигните того же с помощью оператора or:

{данные:ifEQ(значение1):show(результат1):or(данные):ifEQ(значение2):show(результат2):elseShow(результат по умолчанию)}
Пример

Данные:

{
  "val1": 1,
  "val2": 2,
  "val3": 3
}

Шаблон:

val1 = {d.val1:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
val2 = {d.val2:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
val3 = {d.val3:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
Результат
val1 = A
val2 = B
val3 = C

3. Многопеременные условия

Синтаксис

Используйте логические операторы and/or для проверки нескольких переменных:

{данные1:ifEQ(условие1):and(.данные2):ifEQ(условие2):show(результат):elseShow(альтернативный результат)}
{данные1:ifEQ(условие1):or(.данные2):ifEQ(условие2):show(результат):elseShow(альтернативный результат)}
Пример

Данные:

{
  "val2": 2,
  "val5": 5
}

Шаблон:

and = {d.val2:ifEQ(1):and(.val5):ifEQ(5):show(OK):elseShow(KO)}
or = {d.val2:ifEQ(1):or(.val5):ifEQ(5):show(OK):elseShow(KO)}
Результат
and = KO
or = OK

Логические операторы и форматтеры

В следующих разделах описанные форматтеры используют синтаксис встроенных условий в следующем формате:

{данные:форматтер(параметр):show(текст):elseShow(альтернативный текст)}

1. :and(value)

Синтаксис
{данные:ifEQ(значение):and(новые данные или условие):ifGT(другое значение):show(текст):elseShow(альтернативный текст)}
Пример
{d.car:ifEQ('delorean'):and(.speed):ifGT(80):show('TravelInTime'):elseShow('StayHere')}
Результат

Если d.car равно 'delorean' И d.speed больше 80, то вывод TravelInTime; в противном случае — StayHere.

2. :or(value)

Синтаксис
{данные:ifEQ(значение):or(новые данные или условие):ifGT(другое значение):show(текст):elseShow(альтернативный текст)}
Пример
{d.car:ifEQ('delorean'):or(.speed):ifGT(80):show('TravelInTime'):elseShow('StayHere')}
Результат

Если d.car равно 'delorean' ИЛИ d.speed больше 80, то вывод TravelInTime; в противном случае — StayHere.

3. :ifEM()

Синтаксис
{данные:ifEM():show(текст):elseShow(альтернативный текст)}
Пример
null:ifEM():show('Result true'):elseShow('Result false')
[]:ifEM():show('Result true'):elseShow('Result false')
Результат

Для null или пустого массива вывод Result true; в противном случае — Result false.

4. :ifNEM()

Синтаксис
{данные:ifNEM():show(текст):elseShow(альтернативный текст)}
Пример
0:ifNEM():show('Result true'):elseShow('Result false')
'homer':ifNEM():show('Result true'):elseShow('Result false')
Результат

Для непустых данных (таких как число 0 или строка 'homer') вывод Result true; для пустых данных — Result false.

5. :ifEQ(value)

Синтаксис
{данные:ifEQ(значение):show(текст):elseShow(альтернативный текст)}
Пример
100:ifEQ(100):show('Result true'):elseShow('Result false')
'homer':ifEQ('homer'):show('Result true'):elseShow('Result false')
Результат

Если данные равны указанному значению, вывод Result true; в противном случае — Result false.

6. :ifNE(value)

Синтаксис
{данные:ifNE(значение):show(текст):elseShow(альтернативный текст)}
Пример
100:ifNE(100):show('Result true'):elseShow('Result false')
100:ifNE(101):show('Result true'):elseShow('Result false')
Результат

Первый пример выводит Result false, второй пример выводит Result true.

7. :ifGT(value)

Синтаксис
{данные:ifGT(значение):show(текст):elseShow(альтернативный текст)}
Пример
1234:ifGT(1):show('Result true'):elseShow('Result false')
-23:ifGT(19):show('Result true'):elseShow('Result false')
Результат

Первый пример выводит Result true, второй пример выводит Result false.

8. :ifGTE(value)

Синтаксис
{данные:ifGTE(значение):show(текст):elseShow(альтернативный текст)}
Пример
50:ifGTE(-29):show('Result true'):elseShow('Result false')
1:ifGTE(768):show('Result true'):elseShow('Result false')
Результат

Первый пример выводит Result true, второй пример выводит Result false.

9. :ifLT(value)

Синтаксис
{данные:ifLT(значение):show(текст):elseShow(альтернативный текст)}
Пример
-23:ifLT(19):show('Result true'):elseShow('Result false')
1290:ifLT(768):show('Result true'):elseShow('Result false')
Результат

Первый пример выводит Result true, второй пример выводит Result false.

10. :ifLTE(value)

Синтаксис
{данные:ifLTE(значение):show(текст):elseShow(альтернативный текст)}
Пример
5:ifLTE(5):show('Result true'):elseShow('Result false')
1290:ifLTE(768):show('Result true'):elseShow('Result false')
Результат

Первый пример выводит Result true, второй пример выводит Result false.

11. :ifIN(value)

Синтаксис
{данные:ifIN(значение):show(текст):elseShow(альтернативный текст)}
Пример
'car is broken':ifIN('is'):show('Result true'):elseShow('Result false')
[1,2,'toto']:ifIN(2):show('Result true'):elseShow('Result false')
Результат

Оба примера выводят Result true (поскольку строка содержит 'is', а массив содержит 2).

12. :ifNIN(value)

Синтаксис
{данные:ifNIN(значение):show(текст):elseShow(альтернативный текст)}
Пример
'car is broken':ifNIN('is'):show('Result true'):elseShow('Result false')
[1,2,'toto']:ifNIN(2):show('Result true'):elseShow('Result false')
Результат

Первый пример выводит Result false (поскольку строка содержит 'is'), а второй пример выводит Result false (поскольку массив содержит 2).

13. :ifTE(type)

Синтаксис
{данные:ifTE('тип'):show(текст):elseShow(альтернативный текст)}
Пример
'homer':ifTE('string'):show('Result true'):elseShow('Result false')
10.5:ifTE('number'):show('Result true'):elseShow('Result false')
Результат

Первый пример выводит Result true (так как 'homer' является строкой), а второй пример выводит Result true (так как 10.5 является числом).

Условные блоки

Условные блоки используются для отображения или скрытия раздела документа; как правило, они охватывают несколько тегов или целый блок текста.

1. :showBegin / :showEnd

Синтаксис
{данные:ifEQ(условие):showBegin}
Содержимое блока документа
{данные:showEnd}
Пример

Данные:

{
  "toBuy": true
}

Шаблон:

Banana{d.toBuy:ifEQ(true):showBegin}
Apple
Pineapple
{d.toBuy:showEnd}Grapes
Результат

Когда условие выполняется, содержимое между тегами отображается:

Banana
Apple
Pineapple
Grapes

2. :hideBegin / :hideEnd

Синтаксис
{данные:ifEQ(условие):hideBegin}
Содержимое блока документа
{данные:hideEnd}
Пример

Данные:

{
  "toBuy": true
}

Шаблон:

Banana{d.toBuy:ifEQ(true):hideBegin}
Apple
Pineapple
{d.toBuy:hideEnd}Grapes
Результат

Когда условие выполняется, содержимое между тегами скрывается, в результате чего получаем:

Banana
Grapes