Войти с помощью github
Форум /

Всем привет и доброго дня! Читаю документацию и пробую поймать элементарное событие с потомка. Получается чуть менее, чем никак(((

Делаю так:

Кусок bemjson

{
    block : 'test',
    js : true,
    content : {
        block : 'test2',
        js : true,
        content : 'test2 content'
    }
}

Модули:

modules.define('test', ['i-bem__dom', 'test2'], function(provide, BEMDOM, test2) {
    BEMDOM.decl('test', {
        onSetMod : {
            'js': {
                'inited' : function() {
                    test2.on(this.domElem, 'click', this._onClick);
                }
            }
        },
        _onClick : function(e) {
            console.log('hi test');
        }
    });

    provide(BEMDOM);
});

modules.define('test2', ['i-bem__dom'], function(provide, BEMDOM) {
    BEMDOM.decl('test2', {
        onSetMod : {
            'js' : {
                'inited': function() {
                    this.bindTo('click', this._onClick);
                }
            }
        },
        _onClick : function(e) {
            this.emit('click');
            console.log('hi test2');
        }
    });

    provide(BEMDOM);
});

Депсы

test2.deps.js

[{
    mustDeps : [
        { block : 'i-bem', elem : 'dom' },
        { block : 'test2' }
    ]
}]

test.deps.js

[{
    mustDeps : [
        { block : 'i-bem', elem : 'dom' }
    ]
}]

Блоки инциализируются. Ошибок нет. При клике на блоке test2 в консоль падает только 'hi test2'.

Второе. Пробовал через this.findBlockInside('child').on('click', this._onFilterClick, this) задействует только первый дочерний блок... Это правильное его поведение?

Третье. Что это за штука такая: BEMDOM.blocks['blockname'].on(......... Можно где по ней найти документацию? Она поддерживается?

Четвёртое. В коментах тут встречал, что есть ещё каналы. Почитал про них здесь: https://ru.bem.info/libs/bem-core/v2.8.0/desktop/events/#Элемент-channels-блока-events

Это вроде замены findBlockOutside(???).on() или можно использовать повсеместно? Или я вообще неправильно понял назначение каналов?