Skip to content

Матчинг на элемент по модификатору блока #181

@Mellanore

Description

@Mellanore

В версии bh 3.x можно было доопределить шаблон элемента блока с каким-нибудь модификатором следующим образом:

bh.match('blockName__elemName', function(ctx) {   
    ctx.content('Hello!')
});

bh.match('blockName_modName_modVal__elemName', function(ctx) {   
    ctx.applyBase();

    ctx.content('Buy!', true)
});

И сматчиться на него так:

bh.apply({
    block: 'blockName',
    blockMods: { modName: 'modVal' },
    elem: 'elemName'
});

В версии 3.x получится <div class="blockName__elemName">Buy!</div>,
А в 4.x тот же код даст <div class="blockName__elemName">Hello!</div>

Сматчиться на элемент блока с модификатором в 4.x у меня получилось только таким незадокументированным способом (костылем?):

bh.apply({
    block: 'blockName',
    mods: { modName: 'modVal' },
    elem: 'elemName',
    elemMods: {} // При этом без указания хотя бы пустого `elemMods`, модификатор из `mods` приписывается элементу
});

Хочется узнать мнение мейнтейнеров bh насколько ОК использовать такой костыль и не перестанет ли он работать в следующих версиях. Может есть более лучший способ матчиться на элемент блока с модификатором?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions