Skip to content

Instantly share code, notes, and snippets.

View ipetropolsky's full-sized avatar
⚒️

Ivan Petropolsky ipetropolsky

⚒️
  • HeadHunter
  • Moscow
View GitHub Profile
@ipetropolsky
ipetropolsky / dropdown-position.md
Last active August 29, 2015 14:03
Позиционирование дропдауна

Позиционирование дропдауна

Проблема: дропдаун не меняет положения при ресайзе или изменении положения родителя. Касается также тултипов, поповеров и попапов.

Вариант №1: Кладём в body

Плюсы

  • Чистые стили, только reset.css.

Разделение имплементации и реализации компонентов

Идея заключается в отделении логики реиспользуемого компонента от интеграционной логики.

Модуль с реализацией должен возвращать конструктор, и ничего не должен знать про css/верстку. Модуль с интеграцией должен служить адаптером, между нашей версткой/css классами, в т.ч. блоко.

Конструктор реализции принимает словарь с параметрами компонента и словарь с элементами необходимыми для работы.

Предложение по блоко

@App3x
App3x / gist:3b924c01769241e33642
Last active November 11, 2015 14:15
Доработки по компонентам

Проблема недетерминированности порядка инициализации компонентов.

Во-первых: нужно явно отделить механизмы ожидания инита компонента, и ожидания события в каком-то компоненте.

Для событий - любой реализуемый механизм (калбеки/события/промисы etc)

Для ожидания инита компонента - реализация в механизме компоннентов в виде Components.await(node, componentName) -> Promise

Почему bloko/common/ready плохо:

  • bloko никак не связан с нашей структурой, и не должен завязываться на наши особенности инициализации компонентов, блоко должен предоставлять независимые модули, которые будут инититься синхронно по зависимостям.