我想在主应用程序中加载有角度的7模块,以便能够与其他可加载的可路由模块(带有组件)共享模型和服务。
出于记录目的,我有一个app模块,其中包括Core和Shared模块。多数民众赞成在“静态”部分。另一方面,我有一些模块可以动态加载,这些模块是库(内置到UMD文件中并放入资产中)。它就像一个市场,您可以在其中激活一些模块,添加模块...)。现在,我可以即时加载一些模块,并使用路由使其可访问。
但是我想在其他模块中导出api服务,以使其他组件模块可以访问它。像这样:
在加载组件模块之前,我必须加载某种对等依赖项。 现在,我可以像加载组件模块一样加载api-service,但是我不知道如何访问我的服务(例如TestService)。
private loadApiDependency(dep: ModuleDependency) {
return SystemJS.import(`${dep.location}`).then((exports) => {
const moduleNg = exports[`${dep.moduleName}`];
return this.compiler.compileModuleAsync(moduleNg).then((moduleFactory: NgModuleFactory<any>) => {
const moduleRef = moduleFactory.create(this.injector);
console.log(this.injector.get('TestService'));
return moduleFactory;
});
});
}
我的想法是使用Core模块引用所有即时加载服务。但是,现在我在访问TestService时出错:NullInjectorError: No provider for TestService!
。
除此之外,我真的不知道如何在组件模块中引用我的api。我以为我可以使用某种对等依赖项,但是在开发时间中,引用将丢失...
有人有类似的解决方案或想法吗?
请不要回答我“使用延迟加载”,“将您的api放入核心”等等,它必须是这样。或非常相似。
非常感谢。