Привет.
Подскажите как правильно написать шаблон для элемента, который зависит от модификатора блока? Имеем:
{
block: 'modal',
mods: {
theme: ['first', 'second']
}
}
У этого блока есть елемент head
, который должен иметь различную верстку в зависимости от темы модального окна. Единственный вариант, который пришел мне в голову это шаблон вида:
block('modal').mod('theme', 'first').elem('head')(
....
);
Но не работает. Зависимости указаны, стили приезжают, верстка не выводится.
Вопрос 2:
Получается оба шаблона (для каждой темы) я должен написать в одном файле modal__head.bemtree.js
? Или как-то можно разнести по разным файлам?
Есть ещё вариант писать шаблон в файле modal__head_theme_first.bemtree.js
, но это неудобно, т.к. придется повторять модификатор темы для элемента head
. Хм..
Хотя да, последний вариант самый рабочий. Через
def()
добавляем поле_modal
, которое равно контексту модального окна, что позволяет в любом элементе узнать текущую тему. И шаблон в итоге стал примерно таким:А шаблоны лежат в
modal__head_theme_first.bemtree.js
и вручную указывать тему для элемента не нужно, она всегда будет равна теме блока. Такое меня устраивает, надеюсь не перемудрил.