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.

Параметры:

ПараметрЗначение по умолчаниюОписание
template *

Тип: String

Шаблон html-содержимого макетов.

overrides

Тип: Object

Переопределения родительских методов. Можно переопределять/дополнять методы build, clear и rebuild.

staticMethods

Тип: Object

Установка статических методов класса.

* Обязательный параметр/опция.