Перейти к основному содержимому

Использование циклов в сообщениях

В сообщении реализована поддержка циклов для JSON переменных типа список (list) [] и объект (object) {}, а также обращение к элементу объекта по ключу {json.object.name}.

Если в качестве переменной в шаблон вставляются дополнительные поля профиля, то поля типа "Массив объектов" и "Тег" (список строк) тоже могут использоваться в циклах.

Также возможно использовать вложенные циклы.

Пример переменных

{
"Addresses": [
"улица Барклая, дом 444, корпус 24",
"улица Суворова, дом 555, корпус 25"
],
"Information": {
"LJ": [
{"name": "Optimyss X1", "price": "$10"},
{"name": "Optimyss X2", "price": "$20"}
],
"Samsung": [
{"name": "Galaktiko 17", "price": "$50"}
]
}
}

Пример циклов

<h5>Наши новинки:</h5>

<!-- Цикл по элементам объекта -->
{for $vendor $models = json.Information}
<p>{$vendor}</p>

<ol>
<!-- Вложенный цикл -->
{for $index $model = $models}

<!-- Обращение к элементам по ключу -->
<li>{$model.name} {$model.price}</li>

{else}
<p>Empty array!</p>
{end}
</ol>

{else}
<p>Empty array!</p>
{end}


<h5>Адреса:</h5>
<ol>
<!-- Простой цикл по списку строк -->
{for $index $address = json.Addresses}
<li>{$address}</li>
{else}
<p>Empty array!</p>
{end}
</ol>

Результат

<h5>Новинки:</h5>

<!-- Цикл по элементам объекта -->
<p>LJ<p>
<ol>
<!-- Вложенный цикл, Обращение к элементам по ключу -->
<li>Optimyss X1 $10</li>
<li>Optimyss X2 $20</li&gt
<ol>

<!-- Цикл по элементам объекта -->
<p>Samsyng<p>
<ol>
<!-- Вложенный цикл, Обращение к элементам по ключу -->
<li>Galaktiko 17 $50</li>
<ol>

<h5>Адреса:</h5>
<ol>
<!-- Простой цикл по списку строк -->
<li>улица Барклая, дом 444, корпус 24</li>
<li>улица Суворова, дом 555, корпус 25</li>
</ol>