Цикли з масивами, Json файлами та API
Цей документ описує підключення компонентів в циклах, ввивід контенту з json файлу, API та масиву.
Використання контенту з json:
Файли json з данними розміщуються у папці src/data/*.json, в циклі вказується лише назва файлу.
Данні елемента доступні в ключі який йде першим в loop="ключ_елемента, index in data".
Також доступні для використання параметри index та length.
// src/html/components/Products/Products.html
// src/data/products.json
<each data="products.json" loop="product, index in data">
<ProductCard product="{{product}}" index="{{index}}"/>
</each>
або
<each data="products.json" loop="product, index in data">
<div class="product-card">
<span>{{index + 1}}:</span>
<img src="{{product.image}}" alt="{{product.title}}"/>
<h2>{{product.title}}</h2>
<p>{{product.info}}</p>
</div>
</each>
Використання index та length
<each data="products.json" loop="product, index in data">
<if condition="index < 10"
<ProductCard/>
</if>
<if condition="length > 10"
<Pagination/>
</if>
</each>
Використання контенту з API:
Для виводу контенту з відповіді API замість назви файлу вказується URL API.
Приклад з https://jsonplaceholder.typicode.com/users
// https://jsonplaceholder.typicode.com/users
<each data="https://jsonplaceholder.typicode.com/users" loop="user, index in data">
<div class="user-card">
<span>{{index + 1}}:</span>
<h2>{{user.name}}</h2>
<p>{{user.username}}</p>
<p>{{user.address.street}}</p>
<p>{{user.email}}</p>
</div>
</each>
Простий цикл з масивом:
<ul class="list">
<each loop="item, index in ['apple', 'banana', 'orange']">
<li>{{index + 1}}: {{item}}</li>
</each>
</ul>