Не получается инициализировать блок
modules.define('b-map-filter-bar', ['i-bem__dom'], function(provide, BEMDOM) {
BEMDOM.decl(this.name, {
    onSetMod: {
        'js' : {
            'inited' : function() {
                // this.setMod('display', true);
                console.log('init');
            }
        }
    }
});
provide(BEMDOM);
});
bemjson
...
{
    block: 'b-map-filter-bar',
    mix: [{block: 'i-bem'}],
    // mix: {block: 'b-map', elem: 'filters-bar'},
    mods: {'theme': 'tosecond', 'display': false, 'js': 'inited'},
    content: [
        {
            elem: 'ctrl',
            // mods: {'theme': 'first'},
            content: 'текст'
        },
        {
            elem: 'shadow'
        }
    ]
}
...
в консоль после загрузки страницы ничего не попадает
сам файл _index.js подключён
разобрался ))) Нутром чуял где ошибка.
нужно было указать просто js:true, а не писать моды и миксы.
Хотя думаю можно было бы к прошлому варинту data-bem добавить и всё бы заработало
Убрать js: inited из mods, добавить js: true блоку
;-)
data-bem='{"b-map-filter-bar":{}}'—js: trueпроще ;)Почему настолько важно иметь
data-bemпараметр для инициализации?Если у нас известно как называется блок (его класс). Почему мы не можем обойтись без data-bem='{"b-map-filter-bar":{}}' ? Особенно тогда, когда нам передавать нечего. Зачем лишнее дублирование?
Из моих догадок: Это сделано в связи с миксами, чтобы не инициализовать лишний блок.
А ты можешь сказать, какой блок здесь надо инициализировать?
@zxqfox Могу :) Никакой. Не подключён i-bem ;)
Ну в целом идею понял. Решения лучше в голову пока не пришло.
@belozyorcev Даже если добавить
i-bem, это не дает ясности что именно за блоки надо инициализировать. Очередной момент, когда явное лучше неявного ;-)@zxqfox да я просто пошутил :) Спасибо за наводку о подводных камнях.