Шаблоны
Структура шаблона
📂 Имя компонента
📂 template
📂 default
📄 events.js
📄 index.html
📄 styles.css
index.html
- Список Html-элементов, компилируемые в последствии с помощью js-шаблонизатора Lodashevents.js
- События смарт-компонента, которые подключаются во время загрузки шаблонаstyle.css
- Стили смарт-компонента, которые подключаются во время загрузки шаблона
Шаблон - обязательный элемент компонента (кроме служебных), отвечающий за его отображение.
Он может находиться
как в папке самого компонента, так и локально - в папке сайта, заданной аттрибутом templateUrl
Примеры
index.html
<div class="template">
<% for(let key in data) { %>
<div class="item"><%= data[key] %></div>
<% } %>
</div>
В шаблон всегда передается объект data.
Манипуляции с данными происходят с помощью шаблонизатора lodash.
events.js
new SF.cl.propsLoader('component_name', {
function_name: (props) => {
console.log('Кастомная функция из шаблона загружена')
console.log(props)
}
})
Загружаемые события в шаблоне добавляются с помощью класса propsLoader
.
Первый параметр отвечает за
добавление события в суперкласс SmartComponent
для дальнейшего использования любым компонентом из этой
группы.
Название должно строго соответствовать типу смарт-компонента.
Второй параметр - сама функция.
{
action: Название события,
count: Номер события по цепочке,
event: Само событие,
data: Не обязательное свойство - передается из предыдущего action
опционально ( в основном аякс-запросы ),
initiator: Класс инициатора события,
item: Обработчик события,
parent: Родительский класс из которого вызывается событие
}
В функцию передается объект props, состоящий из набора свойств позволяющих взаимодействовать с самим событием, классом-инициатором, классом-родителем и элементом на которое добавляется обработчик.
Ключевое слово this
в стрелочной функции ссылается на класс-родитель данного события.