Angular 导入模块并通过服务注入传递它的配置
Angular import module and pass it's config with service injection
在 nestjs
框架中(受到 Angular 的高度启发),当我想在导入模块时传递一些设置(来自 env 文件)时,我执行以下操作:
// nestjs
@Module({
imports: [
// usually modules has registerAsync method
JwtModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
secret: configService.get<string>('JWT_SECRET'),
}),
inject: [ConfigService],
}),
]
})
export class AuthModule {}
我实际上在 useFactory
中使用了依赖注入。 Angular 这怎么可能?
这个@Module 看起来和@NgModule 完全一样,所以它是一样的。
https://angular.io/guide/dependency-injection-providers#using-factory-providers
如果需要动态配置导入的模块,可以使用ModuleWithProviders
。这正是 RouterModule.forRoot
所做的
在 nestjs
框架中(受到 Angular 的高度启发),当我想在导入模块时传递一些设置(来自 env 文件)时,我执行以下操作:
// nestjs
@Module({
imports: [
// usually modules has registerAsync method
JwtModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
secret: configService.get<string>('JWT_SECRET'),
}),
inject: [ConfigService],
}),
]
})
export class AuthModule {}
我实际上在 useFactory
中使用了依赖注入。 Angular 这怎么可能?
这个@Module 看起来和@NgModule 完全一样,所以它是一样的。
https://angular.io/guide/dependency-injection-providers#using-factory-providers
如果需要动态配置导入的模块,可以使用ModuleWithProviders
。这正是 RouterModule.forRoot
所做的