Доброго времени суток коллеги
Необходимо вызывать такое древо
<div class="filter">
<div class="filter__item selector selector_data_city">
<labe class="selector__label">Choise City</label>
<select class="selector__select select select_data_city"></select>
</div>
</div>
Собственно 3 блока filter
, в элементе которого вызывается selector
с модификатором _data_city
, внутри которого вызывается label
и select
с модификатором _data_city
из блока в блок, аналогично контенту, по иерархии вниз передается data
bh.match('filter', function(ctx, json) {
ctx.content([
elem: 'item',
mix: {
block: 'selector',
mods: {data: 'city'}
data: json.data()
},
], true);
};
bh.match('selector_data_city', function(ctx, json) {
ctx.content([
{
elem: 'label',
mix: {
block: 'label'
},
content: 'Choice City'
},
{
elem: 'select',
mix: {
block: 'select',
mods: {data: 'city'}
data: json.data()
},
}
], true);
};
bh.match('select_data_city', function(ctx, json) {
options = MakeOptions(json.data());
ctx.tag('select');
ctx.content([options], true);
}
Если выполнять в однои файле, то все работает.
Если разнести по методогии БЭМ в разные блоки и прописать то перестает работать наследственная связь, вызвается только filter
прописав deps.js
блоки вызываются, но не в правильном порядке
Если в вызове блока, вместо
elem: 'item',
mix: {
block: 'selector',
mods: {data: 'city'}
data: json.data()
},
использовать
block: 'selector',
mods: {data: 'city'}
mix: {
block: 'filter',
elem: 'item'
},
data: json.data()
То, блоки вызываются в правильном порядке, и дата передается корректно
Объясните, почему так, и как через микс вызвать блок ПОСЛЕ блока родителя