bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Не инициализируется блок #1295

Open philipusis opened 7 years ago

philipusis commented 7 years ago

Добрый вечер! Помогите, пожалуйста, со следующей проблемой. Имею такой 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="{&quot;auth&quot;:{}}">Hello, world!</div>
tadatuta commented 7 years ago

Какая версия bem-core используется?

philipusis commented 7 years ago

Последняя: 4.2.0

tadatuta commented 7 years ago

Тогда причина в декларации. См. гайд по миграции: https://ru.bem.info/platform/libs/bem-core/4.1.1/migration/#Декларация-блока

philipusis commented 7 years ago

Да, не обратил внимания на этот гайд. Спасибо большое!