Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

функцию initEntity в i-bem-dom.js сделать доступной извне #1570

Open
zakaratcha opened this issue May 11, 2018 · 8 comments

Comments

@zakaratcha
Copy link

zakaratcha commented May 11, 2018

Сейчас функция initEntity в i-bem-dom.js скрыта за скоупом и использовать её за пределами этого файла невозможно.
Предлагаю пробросить её как приватный метод bemDom.

Понадобилось это при написании плагина для расширения синтаксиса i-bem в части поиска по DOM дереву.

zakaratcha pushed a commit to zakaratcha/bem-core that referenced this issue May 11, 2018
@zakaratcha zakaratcha changed the title функцию initEntity в i-bem-dom.js сделать видимой вовне функцию initEntity в i-bem-dom.js сделать доступной извне May 11, 2018
@belozer
Copy link
Member

belozer commented May 13, 2018

@zakaratcha initEntity тоже может в любой момент поменяться. Использование findChild + findChild{Block,Elem} навевает неоднозначностью и детонатором.

Но если есть желание делать такую API, то нет проблем сделать что-то типо:

/**
 * @param {BemDomEntity|String|Object}
 */
findChild(BemDomEnitity) {
   return this._findEntities('find', BemDomEntity);
}

Правда дёргается метод из внутренней кухни... Что не есть гуд.

@zakaratcha
Copy link
Author

zakaratcha commented May 13, 2018

@belozer _findEntities работает очень сильно не так, как мне нужно. У меня запросы хитрее.
Можно посмотреть на демо:
https://zakaratcha.github.io/bem-dom-queries/

@belozer
Copy link
Member

belozer commented May 13, 2018

У меня запросы хитрее.

Как по мне - это является проблемой в поддержке.

@belozer
Copy link
Member

belozer commented May 13, 2018

А демка интересная - такую можно было бы и на bem-info запихать 👍 на существующую API (хоть оно и так понятно, а так и итеративность ещё)

@belozer
Copy link
Member

belozer commented May 13, 2018

@zakaratcha а сможешь сделать такую, но с полем ввода для json? Получился бы образовательный интерактивный урок, по поиску сущностей.

{ elem : 'my-elem', mods : { checked : true }}
{ block : BlockCls,  mods : { checked : true }}

@belozer
Copy link
Member

belozer commented May 13, 2018

Именно на текущую реализацию bem-core.

@belozer
Copy link
Member

belozer commented May 13, 2018

@vithar что думаешь на счёт такой штуки (или подной ей)? https://zakaratcha.github.io/bem-dom-queries/

@zakaratcha
Copy link
Author

zakaratcha commented May 13, 2018

Демо с текстовым полем набросать можно будет. Изначально так и хотел, потом решил упростить.
bem-dom-queries я планирую сделать опционально подключаемым плагином к i-bem. И для этого мне нужно достучаться до внутренней кухни i-bem-dom. Всё решаемо без изменений в текущем коде кроме функции initEntity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants