Здравствуйте. Имеется вот такой bemjson:
({
    block: 'page-part',
    content: [{
        block: 'liquid-if',
        conditions: [{
            condition: 'blabla !=2',
            content: [{
                block: 'tatata',
                content: [{
                    block: 'liquid-if',
                    conditions: [{
                        condition: 'tata == 3',
                        content: 'Hello!'
                    }]
                }]
            }]
        }]
    }]
})
Его обрабатывает вот такой bemhtml:
block('liquid-if')(
    bem()(false),
    match(function() { return this.ctx.conditions})(
        def()(function() {
            var ctx = this.ctx.conditions,
                arr = [];
            ctx.forEach(function(item, i) {
                if (typeof(ctx[i].condition) !== 'undefined') {
                    if (i === 0) {
                        arr.push('{% if '+ ctx[i].condition +' %}')
                    } else {
                        arr.push('{% elseif '+ ctx[i].condition +' %}')
                    }
                } else {
                    arr.push('{% else %}')
                }
                arr.push(ctx[i].content)
            });
            arr.push('{% endif %}');
            return applyCtx(arr)
        })
    )
);
На выходе получаем такой html:
{% if blabla !=2 %}
<div class="tatata">
    <div></div>
</div>{% endif %}
Вопрос: из-за чего вложенный блок не применяет шаблон по моде default, хотя bem()(false) отрабатывает?
@Mr-Robby предположительно используется старая версия
bem-xjstи/или базовых шаблонов. Я взял актуальную версиюproject-stubи на ней данный код генерирует:PS: Шаблон можно сократить до:
@tadatuta, спасибо большое! Всего лишь нужно было обновить bem-core с v2.6.0 до v2.7.0 :)