angular - 提供者共享模块 Angular 4
问题描述
我有一个服务被设置为共享模块的一部分,例如
export class MyService {
construct() { }...
}
export class CoreModule {
constructor(@optional() @SkipSelf() core: CoreModule)
{
if (core)
{
throw new Error('Only one instances')
}
}
static forRoot() : ModuleWithProviders {
return{
ngModule: CoreModule,
providers: [MyService]
};
}
}
我想将此 CoreModule(共享为单例)注入将使用 myService 的不同模块。
场景 - 组件 A 正在动态加载例如组件 B
我的一个组件正在使用 viewContainerRef.createComponent(componentFactory) 动态加载另一个组件视图,它似乎创建了 CoreModule 的一个新实例,但是当它被注入时我需要它是一个单例或服务是一个单例进入组件 A,但组件 B 似乎正在创建一个新实例,我在应用组件加载时已经设置了值。
解决方案
推荐阅读
- excel-formula - Excel - 判断 A 列是否为 B 列的三分之一
- python - 关于使用xlwings保存xlsm文件时出错的问题
- angular - 首先获取然后使用角度将谷歌表数据发布到firebase数据库
- css - nuxt.config.js (Nuxt) 中的内联字体声明
- angular - main.js 文件大小太大 - 带有单个 SPA 的微前端
- google-bigquery - 执行 SA360 <> BigQuery 数据传输服务后,广告客户未显示在转化报告中
- python - 语音识别无法识别我的声音
- docker - 节点容器无法连接到 Ubuntu 21.04 上的 MariaDB 容器
- ruby - Ruby - 语法错误,意外的 tIDENTIFIER,期待结束
- angular - 每个项目的组件“应该创建”测试都失败,并出现错误“无法将 @Input 装饰器与查询装饰器结合起来”