---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/templateLayoutFactory.md
  - https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/templateLayoutFactory.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/jsapi-v2-1/doc/ru/llms.txt

# templateLayoutFactory

Статический объект.

Фабрика для создания класса макета из текстового шаблона. Позволяет создавать классы, реализующие интерфейс [ILayout](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/ILayout.md), используя язык шаблонов. В API Яндекс Карт поддерживается базовый синтаксис языков шаблонов Twig/Django Templates. Более подробно о синтаксисе можно прочитать в описании [Template](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/Template.md).

**См.:** [layout.templateBased.Base](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/layout.templateBased.Base.md)

[Методы ](#methods-summary)

**Примеры:**

**1.**

```javascript
// В данном примере в макет добавляются значение опции "colorClass" и значение свойства "header". 
// Если для свойства "header "не задано значение, вставляется строка "Title".
var LayoutClass = ymaps.templateLayoutFactory.createClass(
    '<h1 class="{{ options.colorClass }}">' +
    '{{ properties.header|default:"Title" }}' +
    '</h1>'
);
```

**2.**

```javascript
// В зависимости от значения опции "width" подключается один из макетов.
var LayoutClass = ymaps.templateLayoutFactory.createClass(
    '{% if options.width > 200 %}' +
    // Необходимый макет будет найден в опциях.
    '{% include options.wideLayout %}' +
    '{% else %}' +
    // Записываем ключ.
     '{% include "cluster#balloonCarousel" %}' +
    '{% endif %}'
);
```

**3.**

```javascript
// Вывод в макет балуна массива имен.
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.**

```javascript
// Получение имени полей.
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
});
```

## Методы {#methods-summary}

#|
|| **Имя** | **Статический** | **Возвращает** | **Описание** ||
|| templateLayoutFactory.[createClass](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/templateLayoutFactory.md#.createClass)([template](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/templateLayoutFactory.md#createClass-param-template)[, [overrides](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/templateLayoutFactory.md#createClass-param-overrides)[, [staticMethods](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/templateLayoutFactory.md#createClass-param-staticMethods)]]) | ![](../_images/check.png) | Function | Возвращает конструктор макета. Созданный класс будет унаследован от класса [layout.templateBased.Base](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/layout.templateBased.Base.md) с переопределением списка методов, указанных в overrides. ||
|#

## Описание методов {#method_detail}

### createClass {#createClass}

```javascript
{Function}  _<static>_ templateLayoutFactory.createClass(template[, overrides[, staticMethods]])
```

**Возвращает** конструктор макета. Созданный класс будет унаследован от класса [layout.templateBased.Base](https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/layout.templateBased.Base.md) с переопределением списка методов, указанных в overrides.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`template`](#createClass-param-template)[*](*star) | — | Тип: String

Шаблон html-содержимого макетов. ||
|| [`overrides`](#createClass-param-overrides) | — | Тип: Object

Переопределения родительских методов. Можно переопределять/дополнять методы build, clear и rebuild. ||
|| [`staticMethods`](#createClass-param-staticMethods) | — | Тип: Object

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

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

<!-- XLIFF_FARM_NjlkZWVl_CACHING -->

[*star]: Обязательный параметр.