Я пытаюсь обернуть мою голову вокруг наследования и многоразовых виджетов в AngualarJS (к которым я совершенно новый), и действительно, как если бы кто-то может помочь с указателями для моей проблемы:Angularjs архитектура
У меня есть приложение с двумя страницами (маршрут). Обе эти страницы должны быть настраиваемыми пользователем, причем, когда дело доходит до того, какие виджеты будут отображаться, а также более конкретно для таблиц, которые видят, какие столбцы данных, которые они хранят, должны отображаться.
Что я делаю, так это то, что при загрузке страницы я выбираю конфигурацию JSON для конкретного пользователя из REST API. Это JSON будет выглядеть примерно так:
{
"widgets": [
{ "type":"TableWidget", "columns":["title", "from_year"], "dataSource":"/api/movies"},
{ "type":"TableWidget", "columns":["name", "country"], "dataSource":"/api/actors"},
{ "type":"TableWidget", "columns":["name", "age"], "dataSource":"/api/actors"}
]
}
Это означает, что пользователь хочет отображается три таблицы, два из которых использует один и тот же источник данных, за исключением только показывая различные столбцы (в действительности это не будет иметь места, а скорее граф или что-то еще, используя одни и те же данные, но отображая его по-разному).
Теперь, что я хотел бы сделать здесь, это создать общий TableWidget с внешним видом, который я хочу использовать для таблиц. Он должен быть привязан к источнику данных, и некоторые вещи должны быть настраиваемыми. В иерархии объектов я хотел бы создать какой-то тип BaseWidget, у которого есть свойства, которыми будут обладать все мои виджеты. Затем я хочу, чтобы TableWidget наследовал общие свойства, а также добавил свойства, специфичные для таблицы.
Поток Я предвижу в приложении является то в основном:
- конфигурации Get пользователя
- Loop через конфигурацию и экземпляр каждого виджета пользователь хочет видеть
- Разместите виджеты на странице розыгрыша их
Это явно не использует директивы, поскольку html не знает о пользовательской конфигурации. Я не знаю, как загружается время страницы, и я не знаю, откуда будут извлекаться данные. Одной из подобных реализаций является Kibana, но их база кода слишком массивна для меня, чтобы иметь время, чтобы обернуть мою голову вовремя, чтобы я мог решить мою проблему.
Понятно, что указатели на документацию и аналогичные проблемы и решения будут оценены. Я продолжаю находить очень простые учебники и примеры, а также для поиска в архитектуре. Я только нахожу сообщения о рекомендуемой структуре каталогов.