我正在制作一个 Angular 库,其中包含我们所有应用程序都需要的 auth/graphql 相关代码。
问题是,我将uri
Angular 环境变量存储在 Angular 库中不存在的环境变量中。
执行ng add apollo-angular
生成以下模块:
graphql.module.ts(为清楚起见删除了导入):
const uri = ''; // <-- add the URL of the GraphQL server here
export function createApollo(httpLink: HttpLink) {
return {
link: httpLink.create({uri}),
cache: new InMemoryCache(),
};
}
@NgModule({
exports: [ApolloModule, HttpLinkModule],
providers: [
{
provide: APOLLO_OPTIONS,
useFactory: createApollo,
deps: [HttpLink],
},
],
})
export class GraphQLModule {}
请注意uri
,它会创建对此模块的依赖项,该模块应被注入。
在我的应用程序app.module.ts
中,我创建了一个获取环境的提供程序:
providers: [
{
provide: 'envVars', useValue: environment
}
]
我通常通过构造函数注入,如下所示:
constructor(@Inject('envVars') private envVars: any) {}
我已经尝试了很多方法来注入这个uri
无济于事!建议?