Skip to content

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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions