![](/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.