0

我有一个CoreModule(它提供了常见的功能,比如在上面提供定制的包装服务HttpClient等 - 作为 npm 包)和AppModule(作为 npm 包安装的 Angular 应用CoreModule程序)。

CoreModule有很多关于配置的东西(即login URL, base URL for REST endpoints等)。因此,每当我需要从服务器获取数据时,我只需将其提供给endpoint URL暴露的服务CoreModule,然后它会处理其余的事情,例如创建完整的请求 URL、进行 ajax 调用、提供响应等。

现在,有什么方法可以让我从我base URL的?CoreModuleAppModule

在 Angular 1.x 中,我们曾经有过value配方。所以,我们可以这样做

angular.module('myApp').config(['$provide', function($provider){
   $provider.decorator('configVarsInCoreModule', ['$delegate', function($delegate){
       // give configParamFromClientApp
       angular.extend($delegate, configParamFromClientApp);
   }]);
}]);

Angular 4+ 中是否有任何类似(或不同)的方式来实现类似的行为?

问题是,一旦我从客户端应用程序更新/覆盖baseURL(或任何其他配置变量),它也应该更新CoreModule。因此,如果任何其他服务/组件尝试访问该变量(甚至从CoreModule),它应该读取更新后的值。

4

0 回答 0