Использование циклов в сообщениях
В сообщении реализована поддержка циклов для 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>
<ol>
<!-- Цикл по элементам объекта -->
<p>Samsyng<p>
<ol>
<!-- Вложенный цикл, Обращение к элементам по ключу -->
<li>Galaktiko 17 $50</li>
<ol>
<h5>Адреса:</h5>
<ol>
<!-- Простой цикл по списку строк -->
<li>улица Барклая, дом 444, корпус 24</li>
<li>у лица Суворова, дом 555, корпус 25</li>
</ol>