如何与所有 angular 6 个应用程序组件全局共享从后端获取的配置值?
How to globally share configuration value picked up from back end with all the angular 6 application components?
我已经 MAX_FILE_SIZE 和 Web API 的 Web.config 中定义的其他配置。我需要从后端获取这些配置并将这些配置共享给全球所有 angular 6 个组件。
谁能告诉我最好的方法吗?
这些配置必须在前端代码中只读。
这些配置可能会在 运行 时间内在 Web.config 文件的后端偶尔更改。
我的回复假定您正在配置 Angular 组件将在内部使用的值(例如,对用户上传文件大小的限制),而不是配置这些组件的设置方式第一名(比如...Docker 容器设置?)。它还假设您是 Angular 的新手。如果这些假设在您的情况下是错误的,我希望我的回答对那些假设正确的人有用。
您的 API 应该有一种 RESTful 方法来检索该配置信息。创建一个 service using Angular's HTTP client that retrieves this information from the API. If you use the recommendations below, the HTTP call should return an Observable (an rxjs concept) 服务用来将检索到的信息放入 centrally-accessible 位置。
为了与每个组件共享此信息,请使用 ngrx and create a store that every component can access. If your service puts the configuration information into the store, then the information should be accessible to every component. Here's a good article 了解如何在 Angular 中将数据从一个地方获取到另一个地方。有一个关于使用 ngrx 的概念上有用的部分。
当您的 app.component 初始化时,dispatch an action to retrieve the configuration information. Set up the service with an effect that watches for that action and makes the HTTP call when it comes through. When the HTTP call completes successfully, dispatch another "success" action that uses the retrieved data as the payload. Set up a reducer that will update the state of the store when this success action comes through. Then you can use a selector 在任何需要此配置信息的组件中。
这种设置(使用 ngrx)是一种非常好的设置,因为它维护了单一的权威来源,还使每个组件都能对基础数据的变化做出反应。
我已经 MAX_FILE_SIZE 和 Web API 的 Web.config 中定义的其他配置。我需要从后端获取这些配置并将这些配置共享给全球所有 angular 6 个组件。 谁能告诉我最好的方法吗?
这些配置必须在前端代码中只读。 这些配置可能会在 运行 时间内在 Web.config 文件的后端偶尔更改。
我的回复假定您正在配置 Angular 组件将在内部使用的值(例如,对用户上传文件大小的限制),而不是配置这些组件的设置方式第一名(比如...Docker 容器设置?)。它还假设您是 Angular 的新手。如果这些假设在您的情况下是错误的,我希望我的回答对那些假设正确的人有用。
您的 API 应该有一种 RESTful 方法来检索该配置信息。创建一个 service using Angular's HTTP client that retrieves this information from the API. If you use the recommendations below, the HTTP call should return an Observable (an rxjs concept) 服务用来将检索到的信息放入 centrally-accessible 位置。
为了与每个组件共享此信息,请使用 ngrx and create a store that every component can access. If your service puts the configuration information into the store, then the information should be accessible to every component. Here's a good article 了解如何在 Angular 中将数据从一个地方获取到另一个地方。有一个关于使用 ngrx 的概念上有用的部分。
当您的 app.component 初始化时,dispatch an action to retrieve the configuration information. Set up the service with an effect that watches for that action and makes the HTTP call when it comes through. When the HTTP call completes successfully, dispatch another "success" action that uses the retrieved data as the payload. Set up a reducer that will update the state of the store when this success action comes through. Then you can use a selector 在任何需要此配置信息的组件中。
这种设置(使用 ngrx)是一种非常好的设置,因为它维护了单一的权威来源,还使每个组件都能对基础数据的变化做出反应。