素材巴巴 > 程序开发 >

angular4——core模块只在项目中只加载一次

程序开发 2023-09-18 20:54:56

 

coreModule是核心模块,适合那些只在项目中加载一次的组件和服务。

 

既然core.module 是一个类, 那么它就有构造函数,就可以在构造函数当中进行依赖型注入。

如果core.module已经存在呢,那么就抛出异常

但是目前这种写法是很危险的。因为这是一个无尽循环。在这个构造器中注入core.module的时候,它会去找CoreModule 这个依赖,找这个依赖的时候,发现还是这个CoreModule,进入构造的时候还得进行一次注入,然后行成一个无尽的循环。

    要解决这个问题,我们就要引入一个SkipSelf:

这个@SkipSelf 的意思是:这个池子里已经有CoreModule了, 那么你去父级寻找依赖,而不是在这个类里面打转。

第一次加载这个coremodule的时候怎么办,这个时候系统里没有CoreModule。所以这个时候我们要继续引入一个叫Optional的东西。

表示说, 这个依赖呢,是可选的。如果第一次父级不存在,那么就正常使用这个进行构造就好了,如果有,那么就抛出异常,去父级找就好了。


标签:

上一篇: vscode安装插件报错 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。