templateLayoutFactory
Статический объект.
Фабрика для создания класса макета из текстового шаблона. Позволяет создавать классы, реализующие интерфейс ILayout, используя язык шаблонов. В API Яндекс Карт поддерживается базовый синтаксис языков шаблонов Twig/Django Templates. Более подробно о синтаксисе можно прочитать в описании Template.
См.: layout.templateBased.Base
Примеры:
1.
// В данном примере в макет добавляются значение опции "colorClass" и значение свойства "header".
// Если для свойства "header "не задано значение, вставляется строка "Title".
var LayoutClass = ymaps.templateLayoutFactory.createClass(
'<h1 class="{{ options.colorClass }}">' +
'{{ properties.header|default:"Title" }}' +
'</h1>'
);
2.
// В зависимости от значения опции "width" подключается один из макетов.
var LayoutClass = ymaps.templateLayoutFactory.createClass(
'{% if options.width > 200 %}' +
// Необходимый макет будет найден в опциях.
'{% include options.wideLayout %}' +
'{% else %}' +
// Записываем ключ.
'{% include "cluster#balloonCarousel" %}' +
'{% endif %}'
);
3.
// Вывод в макет балуна массива имен.
var CustomLayoutClass = ymaps.templateLayoutFactory.createClass(
'<ul>' +
'{% for name in properties.names %}' +
// Переменная name доступна только в блоке for ... endfor.
'<li>{{ name }}</li>' +
'{% endfor %}' +
'</ul>'
);
var placemark = new ymaps.Placemark([54.83, 37.11], {
names: ['Logan', 'Sofia', 'Mason', 'Layla']
}, {
balloonContentLayout: CustomLayoutClass
});
4.
// Получение имени полей.
var CustomLayoutClass = ymaps.templateLayoutFactory.createClass(
'<ul>' +
'{% for key, value in properties.hash %}' +
'<li>{{ key }} {{ value }}</li>' +
'{% endfor %}' +
'</ul>'
);
var placemark = new ymaps.Placemark([54.83, 37.11], {
hash: { key1: "value1", key2: "value2", key3: "value3" }
}, {
balloonContentLayout: CustomLayoutClass
});
Методы
Имя |
Статический |
Возвращает |
Описание |
templateLayoutFactory.createClass(template[, overrides[, staticMethods]]) |
Function |
Возвращает конструктор макета. Созданный класс будет унаследован от класса layout.templateBased.Base с переопределением списка методов, указанных в overrides. |
Описание методов
createClass
{Function} _<static>_ templateLayoutFactory.createClass(template[, overrides[, staticMethods]])
Возвращает конструктор макета. Созданный класс будет унаследован от класса layout.templateBased.Base с переопределением списка методов, указанных в overrides.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
— |
Тип: String Шаблон html-содержимого макетов. |
|
— |
Тип: Object Переопределения родительских методов. Можно переопределять/дополнять методы build, clear и rebuild. |
|
— |
Тип: Object Установка статических методов класса. |
* Обязательный параметр/опция.
Обязательный параметр.