在我的评论之后,这就是使用动态提供程序制作动态模块的方法
export interface ProviderInterface {
handle(): void;
}
@Injectable()
class SomeHandlingProvider {
constructor(@Inject('MY_DYNAMIC_PROVIDER') private readonly dynamicProvider: ProviderInterface) {}
handle(): void {
this.dynamicProvider.handle();
}
}
@Module({})
export class AModule {
public static forRoot(provider: ProviderInstance): DynamicModule {
return {
module: AModule,providers: [
{
provide: 'MY_DYNAMIC_PROVIDER',useClass: provider,},SomeHandlingProvider,],};
}
}
然后您可以像这样使用
class GenericDynamicProviderExample implements ProviderInterface {
handle(): void {
console.log('hello');
}
}
@Module({
imports: [
AModule.forRoot(GenericDynamicProviderExample),})
export class BModule {}
本文链接:https://www.f2er.com/3144472.html