Помогите, пожалуйста. Я новичок в вёрстке. В компании, в которую удалось устроиться, велась разработка портала на БЭМ. Предыдущий разработчик переехал в другой город. В итоге, тяжеловато связываться с ним. Сверстал страницу, но не получается завершить задачу.
На странице есть псевдо-селект с несколькими псевдо-элементами ( на них примиксованы блоки .certificate-change ). certificate-change.js http://pastebin.com/U10aafcD
certificate-change.deps.js http://pastebin.com/nkMy9uRh
Каждому псевдоэлементу c .certificate-change соответствует блок .tiles-certificate со своим содержимым. Содержимое хранится в data-bem .certificate-change под именем newBemJSON, для которого есть bemhtml шаблон.
объект newBemJSON http://pastebin.com/Mnn72NNR
tiles-certificate.bemhtml http://pastebin.com/LkAuJxja
Родителем .tiles-certificate является блок .tiles-control, который и управляет заменой блока .tiles-certificate. Он слушает клик на .certificate-change, вытаскивает из него newBemJSON, прогоняет через шаблонизатор и аппендит в себя. tiles-control.js http://pastebin.com/beNxWMUw
tiles-control.deps.js http://pastebin.com/BSZ0U5Qr
Проблема в том, что не срабатывает шаблонизатор. Т.е. на страницу просто вставляется div с классом .tiles-certificate.
Кажется, что tiles-certificate.bemhtml должен быть .bemhtml.js
Предположу, что проблема кроется в http://pastebin.com/BSZ0U5Qr — дважды встречается секция mustDeps, вторая перетирает первую и в результате в сборку не попадает блок
i-bemс базовыми шаблонами.Там, кстати,
tech: 'bemhtml'— вроде бы, не нужно это.@zxqfox
Почему, речь ведь о шаблонизации на клиенте?
Потому что депсы так не умеют. Поищу пруф...
Кстати, вот интересная штука: https://github.com/bem/bem-components/blob/v2/common.blocks/menu-item/_type/menu-item_type_link.deps.js#L7
Кажется, это от того, что depsByTech не самая понятная штука.
@tadatuta https://github.com/enb-bem/enb-bem-techs/blob/master/techs/deps-by-tech-to-bemdecl.js#L108 вот тут есть условие про destTech Видимо, информация устарела и уже все ок. Спасибо за наводку ;-)
@zxqfox вот же
@tadatuta Есть инфа, что раньше tech внутри не нужен был, а сейчас, если убрать
destTech: 'bemhtml', то подгрузятся все технологии по depsByTech.Похоже, я ничего не знаю про это раньше.
@tadatuta изменил структуру таким образом http://pastebin.com/UDHEMLTy. Но всё-равно не собирается. Может быть есть ещё идеи?
Все остальное выглядит правильно. Если есть возможность запушить на github пример, на котором воспроизводится проблема — помогу.
@tadatuta Залил. Вот ссылка на репозиторий https://github.com/karalkou/some-project Привязано на клик по "Объединенная авиастроительная коропорация". gulp перекладывает в pages/
@karalkou не хватало mustDeps-зависимости от
i-bemвdesktop.blocks/tiles-certificate/tiles-certificate.deps.js, но я пока разбирался, поправил несколько других моментов, сейчас пришлю PR с комментариями.@tadatuta спасибо
@karalkou https://github.com/karalkou/some-project/pull/1