![](/img/trans.png)
[英]how to determine if javascript module was imported or loaded via script src?
[英]Eagerly loaded module - Imported or Exported in core module?
为了使我的AppModule更加整洁,我在CoreModule中导入了一个渴望加载的功能模块,该模块(一次)导入了AppModule。
我发现有趣的是,该应用程序可以通过在CoreModule中导出或导入功能模块来工作。 谁能解释其中的区别? 正确的方法是什么?
好吧,如果该FeatureModule
具有某个功能(通常是一个可声明的组件,如Component,Directive或Pipe),并且您想在CoreModule
(已将其导入到AppModule
)或AppModule
使用它,您将拥有也可以从CoreModule
导出它。
如果您从某个模块导出某些内容,则可以在导入该模块的模块中使用它。
而且,如果您从导入模块的模块中导出该模块,则可以在导入该模块的模块中使用导出模块的功能。
让我们以带有CoreModule
, AppModule
和FeatureModule
的示例为例。
FeatureModule
具有在其中声明的FeatureComponent
。 如果要在CoreModule
使用此FeatureComponent
,则必须从FeatureModule
导出FeatureComponent
,然后在CoreModule
导入FeatureModule
。
现在,如果您也想在AppModule
使用FeatureCompoent
。 您只需从CoreModule
export
FeatureModule
即可。 而且,由于您已经将CoreModule
导入了AppModule
中, AppModule
您可以访问CoreModule
所有导出成员, FeatureModule
就是其中之一。
这是Angular的文档所说的,以帮助您更好地理解:
在此NgModule中声明的组件,指令和管道的集合,可以在作为导入此NgModule的NgModule的一部分的任何组件的模板中使用。 导出的声明是模块的公共API。
可声明的属于一个,并且仅属于一个NgModule。 一个模块可以在其导出中列出另一个模块,在这种情况下,该模块的所有公共声明都将导出。
声明默认为私有。 如果此ModuleA不导出UserComponent,则仅此ModuleA中的组件可以使用UserComponent。
ModuleA可以导入ModuleB,也可以将其导出,从而使ModuleB的导出可用于导入ModuleA的NgModule。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.