我正在尝试从组件内的延迟加载模块访问服务实例。该模块没有任何组件可用于基于构造函数的注入。Android 文档没有帮助,我在 Medium 和类似网站上找到的所有各种教程都不适用。
这是执行服务延迟加载的组件的代码。
await import ('./lazy.module')
.then(module => module.LazyModule)
.then(module => {return module;})
.then(module => this.compiler.compileModuleAsync(module))
.then(factory => {
let module = factory.create(this.injector);
this.lazyService = module.injector.get(LazyService);
});
问题是在当前组件中包含 LazyService 会破坏延迟加载的目的,并且 get() 方法似乎想要一种类型,只为这种方法创建鸡蛋问题。我将 InjectionToken 作为另一种选择进行了研究,但它需要一个通用定义,该定义再次需要导入 LazyService。
谁能解释应该如何完成延迟服务加载?