我有一个CoreModule
(它提供了常见的功能,比如在上面提供定制的包装服务HttpClient
等 - 作为 npm 包)和AppModule
(作为 npm 包安装的 Angular 应用CoreModule
程序)。
CoreModule
有很多关于配置的东西(即login URL, base URL for REST endpoints
等)。因此,每当我需要从服务器获取数据时,我只需将其提供给endpoint URL
暴露的服务CoreModule
,然后它会处理其余的事情,例如创建完整的请求 URL、进行 ajax 调用、提供响应等。
现在,有什么方法可以让我从我base URL
的?CoreModule
AppModule
在 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
),它应该读取更新后的值。