У меня есть приложение со сложной компоновкой, где пользователь может добавлять (перетаскивать) виджеты (выбирая из предопределенного набора из 100 + виджетов), где каждый виджет представляет собой настраиваемую реализацию, которая отображает набор данных (выбирается с использованием REST) определенным образом. Я прочитал множество сообщений в блогах, вопросов о стеке и официальных документах AngularJS, но я не могу понять, как мне придумать мое приложение для обработки там требований. Если посмотреть на демонстрационные приложения, есть один модуль (ng-app), а при его создании в файле .js зависимые модули объявляются как его зависимости, однако у меня есть большой набор виджетов, и почему-то не рекомендуется описывать их все там. Мне нужно предложение для следующих вопросов:
- Как мне создать приложение и виджеты - должен ли я иметь отдельный модуль AngularJS, или каждый виджет должен быть директивой для основного модуля?
- Если я создаю свой виджет в качестве директив, существует ли способ определить зависимость в директиве. То есть сказать, что моя директива использует ng-каландр в его реализации?
- Если я создаю каждый виджет как отдельный модуль, есть ли способ динамически добавлять модуль виджета в зависимость от основного модуля?
- Как мне спроектировать контроллеры - возможно, один контроллер на виджет?
- Как я могу отделить состояние (область), если у меня есть несколько виджетов одного типа в представлении?
- Существуют ли лучшие стратегии для разработки многоразовых виджетов с помощью AngularJS?
ИЗМЕНИТЬ
Полезные ссылки:
- ocLazyLoad - отличная ленивая загрузка lib для AngularJS
- Проект семян - модули + ленивая загрузка по изменению маршрута (ES6, systemjs, ocLazyLoad)
- Lazy loading в AngularJS
- Динамические загрузки контроллеров и просмотров с помощью AngularJS и RequireJS
- Загрузка компонентов AngularJS с требованием после приложения Bootstrap
- Демо-проект о ленивой загрузке ресурсов AngularJS на GitHub
- Загрузить по запросу проект
- Инъекционный модуль динамически только при необходимости
- Еще одна ленивая загрузка в Angular статье
- Организация кода в приложениях Large AngularJS и JavaScript