使用最新的Angular如何做到这一点,欢迎创意。
包含以下模块的Angular项目,这些模块是延迟加载的(为了简洁起见,限制为两个模块,但可能还有更多模块):
对于AdminModule,我想应用额外的安全性,主要是我想对其进行IP保护。给出的体系结构设计(特定于这种情况)意味着它需要从另一台服务器(与其他模块不同的主机)提供服务。
所以基本上这意味着:
在这种情况下,如何修改AdminModule特定于Angular的下载URL?
有没有办法拦截Angular使用的下载URL并对其进行修改,或者在Angular中的某个地方设置要使用的特定下载URL?
注意:AdminModule已经被延迟加载,仅适用于管理员。因此,如果您的建议是有条件地加载它,那么已经完成了。
注意服务器端AdminModule进行的操作具有IP保护等额外的安全性,因此,如果您的建议是已经完成,则此问题仅用于模块客户端的下载。
更新0
注意在给定的设计下,无法使用代理/服务器端解决方案来拦截请求并重写请求。问题是关于如何在客户端实现它。
更新1
似乎可以创建一个自定义ResourceLoader,然后将其提供给Angular,以覆盖默认实现。
例如:
const providers = [{provide: ResourceLoader, useClass: MyResourceLoaderImpl}];
platformBrowserDynamic().bootstrapModule(AppModule, {providers});
Here是ResourceLoader植入的示例。
但是,在我的应用程序中尝试不起作用。但是,似乎应该,我有什么遗漏吗?