Size: a a a

2019 December 13

co

cup of tea ☕️ in БЭМ
ок
источник

SB

Sergey Berezhnoy in БЭМ
cup of tea ☕️
Просто в моем случае элемент блока dropdown пытается унаследовать блок control, а в примере на бем.инфо в принципе такого случая не приведено. Там есть примеры когда блок унаследует другой блок и элемент блока унаследует другой элемент того же блока, но нет примера моего случая, когда элемент одного блока унаследует другой блок
это не должно влиять
источник

co

cup of tea ☕️ in БЭМ
м, то же самое происходит, когда блок пытается унаследовать элемент. он инициализируется с классом блок__блок_js_inited
источник

co

cup of tea ☕️ in БЭМ
создам тогда перекрестный вариант ишью
источник
2019 December 14

co

cup of tea ☕️ in БЭМ
источник

SB

Sergey Berezhnoy in БЭМ
спасибо
источник
2019 December 15

АН

Авроамэриканец Начрэл in БЭМ
Привет
источник

АН

Авроамэриканец Начрэл in БЭМ
Я недавно узнал о бэм и мне нравится архитектура. У меня есть вопрос, но я не использую инструменты и надеюсь на них всё не завязано и я смогу найти ответ без их использования
источник

АН

Авроамэриканец Начрэл in БЭМ
Как по БЭМ соблюдать инкапсуляцию? Есть элемент menu с инпутом search, при вводе ищутся итемы меню.

Засунул это меню в попап показывающийся при нажатии на кнопку - получился новый модуль select.

Модуль menu пушит событие select, когда происходит выбор.
Модуль select перехватывает это событие, устанавливает новое значение, текст и состояние (закрывает попап).

Теперь хочу при выборе элемента очищать инпут search в модуле menu, но согласно методологии, я не имею права лезть в независимый элемент.

Как организовать очистку инпута?
источник

АН

Авроамэриканец Начрэл in БЭМ
Есть мысль пушить в menu события вроде clearInput, но это не в стиле js, потому что это по сути не событие (ничего же не произошло), а обмен сообщениями через события. Что даже звучит как хак
источник

co

cup of tea ☕️ in БЭМ
Мм, похоже я нашел еще одну проблему в работе цепочек попредикатов, в которых используется '*'. Завтра перепроверю
источник

АН

Авроамэриканец Начрэл in БЭМ
Авроамэриканец Начрэл
Как по БЭМ соблюдать инкапсуляцию? Есть элемент menu с инпутом search, при вводе ищутся итемы меню.

Засунул это меню в попап показывающийся при нажатии на кнопку - получился новый модуль select.

Модуль menu пушит событие select, когда происходит выбор.
Модуль select перехватывает это событие, устанавливает новое значение, текст и состояние (закрывает попап).

Теперь хочу при выборе элемента очищать инпут search в модуле menu, но согласно методологии, я не имею права лезть в независимый элемент.

Как организовать очистку инпута?
Вопрос до сих пор актуален. Как отправлять объекту управляющие сообщения?
источник

co

cup of tea ☕️ in БЭМ
Можно тригерить одним компонентом на себе же событие о том, что что-то произошло (например, в попапе была выбрана опция), а другим компонентом подписываться на события первого
источник

АН

Авроамэриканец Начрэл in БЭМ
cup of tea ☕️
Можно тригерить одним компонентом на себе же событие о том, что что-то произошло (например, в попапе была выбрана опция), а другим компонентом подписываться на события первого
Menu лежит внутри popup и ничего о нём знать не должно
источник

SB

Sergey Berezhnoy in БЭМ
Авроамэриканец Начрэл
Вопрос до сих пор актуален. Как отправлять объекту управляющие сообщения?
есть два способа: 1) найти блок/элемент через методы поиска и напрямую вызвать метод
2) через события
источник

co

cup of tea ☕️ in БЭМ
Ну тогда можно тригеть попапом событие, к примеру, на документе, и вторым подписываться и прослушивать на документе то событие, т.е. по принципу EventBus
источник

АН

Авроамэриканец Начрэл in БЭМ
Sergey Berezhnoy
есть два способа: 1) найти блок/элемент через методы поиска и напрямую вызвать метод
2) через события
А как привязать метод к HTMLElement? Манки патчингом?
источник

АН

Авроамэриканец Начрэл in БЭМ
cup of tea ☕️
Ну тогда можно тригеть попапом событие, к примеру, на документе, и вторым подписываться и прослушивать на документе то событие, т.е. по принципу EventBus
Да, так сделано в примере "БЭМ это не только CSS", но там рассматривается такое прослушивание событий попапом, который на странице один.

В этом случае у нас есть селектор, которых может быть на странице много. Я кстати ошибся, не popup, а select содержит menu, просто описался.

Делать это по id? Назначить menu id, пушить на документ кастомное событие вроде menu_clear-input с id этого menu, а menu отвечать на это событие очисткой инпута и пушем события вроде menu_clear-input, говорящем о очистке?

Если в этом заключается предложение, то так бы и поступили создатели БЭМ? Меня смущает то, что события в js это всегда реакция на что-то, а такое сообщение от select это не реакция, а сообщение, либо мы можем назвать это реакцией на закрытие попапа в select, но тогда получается у menu есть зависимость от чего-то вне его.
источник

co

cup of tea ☕️ in БЭМ
Ну есть понятие связи, а есть понятие зависимости. В вашем случае вы пытаетесь связать два компонента в одно целое, потому что у вас цель такая. Добиться этого, оставив обоих абсолютно независимыми друг от друга, не получится
источник

SB

Sergey Berezhnoy in БЭМ
Авроамэриканец Начрэл
А как привязать метод к HTMLElement? Манки патчингом?
это точно реальный вопрос, а не попытка подольше потрясти своим провокационным ником?

в документации же есть раздел про это: https://ru.bem.info/technologies/classic/i-bem/html-binding/
источник