Добрый вечер! Помогите, пожалуйста, со следующей проблемой. Имею такой bemjson:
module.exports = {
block: 'page',
title: 'Authorization',
head : [
{ elem : 'meta', attrs : { name : 'description', content : '' } },
{ elem : 'css', url : 'index/index.css' }
],
scripts: [{ elem : 'js', url : 'index/index.js' }],
content: {
block: 'wrapper',
content: {
block: 'auth'
}
}
}
Вот такой шаблон:
block('auth')(
js()(true),
content()(() => {
return 'Hello, world!'
})
)
И вот такое вот js объявление блока:
modules.define('auth', ['i-bem__dom'], function(provide, BEMDOM) {
provide(BEMDOM.decl(
this.name,
{
onSetMod: {
'js': {
'inited': function() {
console.log('auth inited');
}
}
}
}
))
});
Не происходит инициализация блока 'auth'. Не могу понять, где ошибка: имя блока в шаблоне и декларации совпадают, js в шаблоне включен, в зависимостях page'а автоматическая инициализация тоже прописана. В результирующий js декларация попала, js на страницу - тоже. В консоль никаких ошибок не валится. Класс i-bem в html-разметке тоже присутствует:
<div class="auth i-bem" data-bem="{"auth":{}}">Hello, world!</div>
Какая версия bem-core используется?
Последняя: 4.2.0
Тогда причина в декларации. См. гайд по миграции: https://ru.bem.info/platform/libs/bem-core/4.1.1/migration/#Декларация-блока
Да, не обратил внимания на этот гайд. Спасибо большое!