BEMJSON:
{
block: 'menu',
elem: 'content'
}
нужно получить:
{
block: 'menu',
elem: 'content'
},
{
block: 'menu',
elem: 'overlay'
},
c помощью шаблона:
block('menu').elem('content')(
tag()(false),
content()(function() {
return [
{
elem: 'content2',
},
{
elem: 'overlay'
}
]
})
);
можно получить почти то, что нужно, а но заменить элемент content2 на content не получается.
Если задача действительно такая странная и решать нужно именно ее, а не порефакторить где-то заранее, чтобы она в принципе не возникала, то можно сделать, например, так.
Спасибо. Не очень красиво, но теперь хотя бы понятно, как подобные вещи сделать.
У меня собственно блок menu mix с блоком page, и у него своих шаблонов нет.
Если сделать сам элемент menu__content блоком, тогда его элемент "content всей страницы" и элемент кнопка "гамбургер" окажутся в DOM снаружи блока. Так сделать нормально?
Я предлагаю не экономить лишний DOM, сделать полноценный блок
menu
со своими шаблонами и не городить огород. Более того, я считаю, что добавить__overlay
явно, без магии.Меню должно влиять на стили всего контента page, т. е. по-крайней мере один элемент находится в DOM снаружи меню.
Вопрос по методологии и реализации block.elem() и this.liveBindTo() -- элементы ищутся внутри block.domElem или по всему документу?