После получения модели и рендеринга представления, виджету необходимо сформировать ссылки на элементы, из которых строится представление. Такие элементы можно разделить на две группы:
Элементы - части представления, неотделимые от виджета
Вложенные виджеты - другие виджеты, являющиеся частью данного
Для идентификации элементов виджета я рекомендую использовать БЭМ методологию, так как это стандартизирует именование виджетов и его элементов, а так же упрощает работу с ними.
Формирование ссылок на элементы виджета
Часто виджету необходимо получить доступ к своим элементам (для добавления обработчиков событий, на пример). Сделать это можно двумя способами:
Получать ссылку в месте ее использования
Получить ссылку заранее
Какой подход выбрать зависит от ситуации. Первый вариант позволяет динамически изменять структуру виджета, без необходимости переформирования списка. Второй вариант позволяет декларативно формировать и использовать элементы, на пример так:
В случае необходимости, можно использовать оба подхода, заменяя ссылки динамически:
Корневой элемент виджета можно обернуть в JQuery, что упростит работу с ним в будущем:
Работа с вложенными виджетами
Если элементом виджета является другой виджет, следует рассматривать две основные задачи:
Как рендерить вложенный виджет при рендеринге основного?
Как взаимодействовать с вложенным виджетом?
Для сохранения независимости и переносимости виджетов, рекомендуется взаимодействовать с ними через открытые интерфейсы и события.
Так, для рендеринга вложенных виджетов лучше использовать их метод render: