angular4——core模块只在项目中只加载一次
程序开发
2023-09-18 20:54:56
coreModule是核心模块,适合那些只在项目中加载一次的组件和服务。
既然core.module 是一个类, 那么它就有构造函数,就可以在构造函数当中进行依赖型注入。
如果core.module已经存在呢,那么就抛出异常
但是目前这种写法是很危险的。因为这是一个无尽循环。在这个构造器中注入core.module的时候,它会去找CoreModule 这个依赖,找这个依赖的时候,发现还是这个CoreModule,进入构造的时候还得进行一次注入,然后行成一个无尽的循环。
要解决这个问题,我们就要引入一个SkipSelf:
这个@SkipSelf 的意思是:这个池子里已经有CoreModule了, 那么你去父级寻找依赖,而不是在这个类里面打转。
第一次加载这个coremodule的时候怎么办,这个时候系统里没有CoreModule。所以这个时候我们要继续引入一个叫Optional的东西。
表示说, 这个依赖呢,是可选的。如果第一次父级不存在,那么就正常使用这个进行构造就好了,如果有,那么就抛出异常,去父级找就好了。
标签:
上一篇:
vscode安装插件报错
下一篇:
相关文章
-
无相关信息