Как глобально поделиться значением конфигурации, полученным из серверной части, со всеми угловыми 6 прикладными компонентами? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть MAX_FILE_SIZE и другие конфигурации, определенные в Web.config Web API. Мне нужно получить эти конфигурации из серверной части и поделиться этими конфигурациями со всеми угловыми 6 компонентами по всему миру. Может кто-нибудь сказать, пожалуйста, лучший способ сделать это?

Эта конфигурация должна быть прочитана только в коде переднего плана. Эти конфигурации могут время от времени изменяться во время выполнения на сервере из файла Web.config.

1 Ответ

1 голос
/ 03 июля 2019

В моем ответе предполагается, что вы настраиваете значения, которые ваши компоненты Angular будут использовать внутри (например, ограничения на размер файла для пользовательских загрузок), а не настраиваете настройку этих компонентов в первую очередь (например. Настройки контейнера Docker?). Это также предполагает, что вы относительно новичок в Angular. Если эти предположения неверны в вашем случае, я надеюсь, что мой ответ будет полезен для кого-то, для кого эти предположения верны.

Ваш API должен иметь способ RESTful для получения этой информации о конфигурации. Создайте службу , используя HTTP-клиент Angular , который получает эту информацию из API. Если вы воспользуетесь приведенными ниже рекомендациями, вызов HTTP должен вернуть Observable ( концепция rxjs ), который используется службой для помещения извлеченной информации в централизованно доступное место.

Чтобы поделиться этой информацией с каждым компонентом, используйте ngrx и создайте хранилище , к которому может получить доступ каждый компонент. Если ваша служба помещает информацию о конфигурации в хранилище, эта информация должна быть доступна для каждого компонента. Вот хорошая статья о том, как получать данные из одного места в другое в Angular. Есть концептуально полезный раздел по использованию ngrx.

Когда ваш app.component инициализируется, отправляет действие , чтобы получить информацию о конфигурации. Настройте службу с эффектом , который наблюдает за этим действием и выполняет HTTP-вызов при его выполнении. Когда HTTP-вызов завершается успешно, отправьте еще одно «успешное» действие, которое использует извлеченные данные в качестве полезной нагрузки. Настройте редуктор , который будет обновлять состояние магазина, когда это успешное действие будет выполнено. Затем вы можете использовать селектор в любом компоненте, которому нужна эта информация о конфигурации.

Этот тип настройки (с использованием ngrx) очень хорош, поскольку он поддерживает единый источник полномочий, а также позволяет каждому компоненту реагировать на изменения в базовых данных.

...