мляяять, ну короче сайт состоит из модулей , а модули состоят из виджетов, в яваскрипт коде ты описываешь модули и виджеты которые они юзают.
а в html где хочешь применить модуль к разметке просто прописываешь
<div>ui="module"></div>
но модуль ничего внутри не дорисовывает (конечно это решать создателю модуля но это не круто и я против) все мы должны рисовать сами.
Допустим модуль window имеет виджеты и один из виджетов это кнопка закрытия close, окно создается так
<div ui="window"></div>
это УЖЕ окно, но кнопка закрытия не нарисуется и не создастся
мы должны создать её вручную. и указать что это именно виджет close модуля window делается это так))
<div ui="window">
<div ui="window-close">закрыть<div>
</div>
(виджеты от модулей отделяются минусом)
и все, модуль подцепит виджет close и повесит на него все обработчики, и оформлять мы это все можем как душе угодно, можем создать например 10 кнопок закрытия
<div ui="window">
<div ui="window-close">Мое окно<div>
<div ui="window-close">тоже закрыть<div>
<button ui="window-close">и это закрыть<button>
</div>
Еще модуль window содержит виджет title за который можно цеплять и перетаскивать окно. создадим его)
<div ui="window">
<div ui="window-title">Мое окно<div>
<button ui="window-close">закрыть<button>
</div>
А можно еще делать и так, сделаем чтобы за кнопку закрытия можно было и перетаскивать и закрывать)
<div ui="window">
<div ui="window-title, window-close">закрыть<div>
</div>