Size: a a a

2018 November 14

VG

Vladimir Grinenko in БЭМ
Александр
Привет
А какая тулза минифицированный css разбивает на отдельные блоки? На выходе файловая структура по бэм.
Вроде слышал, что есть такое
есть быстрый наколеночный прототип https://github.com/tadatuta/bem-tools-create-by-css
источник

VG

Vladimir Grinenko in БЭМ
не учитываются MQ и пачка других кейсов, но для простых случаев более-менее работает
источник

А

Александр in БЭМ
Спасибо ребят)
источник
2018 November 15

И

Ильдар in БЭМ
Здравствуйте, есть блок который миксуется к двум другим
mix: {
  block: 'basket-logic',
  mods: {
    type: 'product-page'
  },
  js: {
         id: 'basket-logic'
   }
}
в YM его представление нормально отрабатывает, но я не могу создать его модификатор в YM
источник

И

Ильдар in БЭМ
modules.define('basket-logic', ['i-bem-dom', 'product-price-n-lead-1'], function(provide, bemDom, Lead, Logic) {
   
   provide(Logic.declMod({modName: 'type', modVal: 'product-page'}, // etc
источник

И

Ильдар in БЭМ
сборщик файл цепляет, но вот в нем ни чего не работает init итд
источник

Р

Роман in БЭМ
Ильдар
сборщик файл цепляет, но вот в нем ни чего не работает init итд
А в блоке basket-logic этот блок «вызываешь» через findMixedBlock()?
источник

И

Ильдар in БЭМ
Роман
А в блоке basket-logic этот блок «вызываешь» через findMixedBlock()?
да
источник

Р

Роман in БЭМ
Роман
А в блоке basket-logic этот блок «вызываешь» через findMixedBlock()?
Т. е. не в basket-logic, а в том к которому микссуешь.
источник

И

Ильдар in БЭМ
Роман
Т. е. не в basket-logic, а в том к которому микссуешь.
нет не вызываю,
ищу блоки в basket-logic через findMixedBlock() - он их находит, а вот  модификатор basket-logic_type_product-page не хочет работать
источник

И

Ильдар in БЭМ
он же просто должен расширить функицонал для basket-logic, но это не происходит, так как его init не срабатывает
источник

Р

Роман in БЭМ
Ильдар
нет не вызываю,
ищу блоки в basket-logic через findMixedBlock() - он их находит, а вот  модификатор basket-logic_type_product-page не хочет работать
Сначала в «родительском» (том, который содержит микс basket-logic) найди его через finbMixedBlock — это вызовет его инициализацию.
источник

И

Ильдар in БЭМ
Роман
Сначала в «родительском» (том, который содержит микс basket-logic) найди его через finbMixedBlock — это вызовет его инициализацию.
это вызовет инициализацию модификатора для basket-logic?
Почему тогда сам basket-logic без вызова его в том блоке куда он инамиксован работает?
Попробуйю сейчас
источник

И

Ильдар in БЭМ
Роман
Сначала в «родительском» (том, который содержит микс basket-logic) найди его через finbMixedBlock — это вызовет его инициализацию.
не работает так, проблема с инициализацией блока не стоит, не работает только модификатор в случае если используется в виде микса
источник

И

Ильдар in БЭМ
похоже что если блок присутствует на странице только в виде микса к другому блоку, то его модификаторы в YM не работают.
источник

И

Ильдар in БЭМ
Ребя из команды Яндекс, прошу вашей помощи в этом вопросе
источник

SB

Sergey Berezhnoy in БЭМ
Ильдар
похоже что если блок присутствует на странице только в виде микса к другому блоку, то его модификаторы в YM не работают.
не совсем понятен вопрос — можно минимальный кейс с воспроизведением проблемы?
источник

И

Ильдар in БЭМ
Sergey Berezhnoy
не совсем понятен вопрос — можно минимальный кейс с воспроизведением проблемы?
Пусть есть 2 блока some-block и another-block к ним примиксован logic-block для того чтоб организаовать взаимодействия этих блоков.

шаблон у которых есть так же JS представление
{
  block: 'some-block',
  mix: {
     block: 'logic-block',
     js: {
        id: 'logic-block''
     }
  }
},
{
  block: 'another-block',
  mix: {
     block: 'logic-block',
     mods: {
       type: 'test'
    },
     js: {
        id: 'logic-block''
     }
  }
}

YM блока logic-block
modules.define('logic-block', ['i-bem-dom', 'another-block'], function(provide, bemDom,AnotherBlock) {
  provide(bemDom.declBlock(this.name,{
     onSetMod : {
           'js' : {
               'inited': function() {
                   // все прекрасно работает
                   this._anotherBlock = this.findMixedBlock(AnotherBlock);

               }
           }
       },
  }
});

YM модификатора test блока logic-block
modules.define('logic-block', ['i-bem-dom'], function(provide, bemDom,Logic) {
  // проверим что блок попал в депсы
 alert('deps');

  provide(Logic.declMod({modName: 'type', modVal: 'test'},
     onSetMod : {
           'js' : {
               'inited': function() {
                   this.__base();
                  // тут ни чего не работает
                   alert(123);

               }
           }
       },
  }
});
источник

И

Ильдар in БЭМ
отмечу что если блок logic-block будет существовать не в виде микса то для данного экземпляра модификатор заработает
источник

И

Ильдар in БЭМ
забыл в примере id добавить еще
источник