Angular 每个模块具有不同的api端点
在Angular应用程序中,我使用注入令牌来配置后端API URLAngular 每个模块具有不同的api端点,angular,Angular,在Angular应用程序中,我使用注入令牌来配置后端API URL export ENDPOINT = new InjectionToken<string>('ENDPOINT'); 这真的很好。 现在我有一个例子,我有不同的模块,它本身应该有不同的端点。我目前正在研究如何配置此端点,以支持不同模块的多个端点。 作为约束,我不想为每个模块创建额外的端点。应该重用现有的一个 所需方式: providers: [ { provide: ENDPOINT, useVa
export ENDPOINT = new InjectionToken<string>('ENDPOINT');
这真的很好。
现在我有一个例子,我有不同的模块,它本身应该有不同的端点。我目前正在研究如何配置此端点
,以支持不同模块的多个端点。
作为约束,我不想为每个模块创建额外的端点。应该重用现有的一个
所需方式:
providers: [
{
provide: ENDPOINT,
useValue: [
{endpoint: 'https://1', module: AppModule },
{endpoint: 'https://2', moduel: BModule }
]
}
这有可能吗
作为约束,我不想为每个模块创建额外的端点。应该重用现有的一个
我假设使用extraENDPOINT
表示类似于ENDPOINT1
和ENDPOINT2
。我的建议是使用多重选项
providers: [
{ provide: ENDPOINT, useValue: 'https://backend-1', multi: true },
{ provide: ENDPOINT, useValue: 'https://backend-2', multi: true }
使用此选项,您需要将注入值更改为数组
constructor(@Inject(ENDPOINT) endpoints: string[]) {}
这肯定是正确的方向。我只是想知道一个模块应该如何决定使用哪一个。您不能从另一个模块为一个模块提供令牌或服务。每个模块都需要为自己定义提供程序(或通过模块导入导入)。建议的方法将为单个模块提供多个端点。我以为你是那个意思。也许你想要像代理一样的东西?
constructor(@Inject(ENDPOINT) endpoints: string[]) {}