簡體   English   中英

了解角度模塊導入

[英]Understanding angular module imports

我正在研究一個在其某些組件中使用FormsModules功能的舊式庫,因此FormsModule在LibraryModule級別導入,如下所示:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { FormsModule } from '@angular/forms';

@NgModule({
    declarations: [
        LabelButtonPrimaryComponent,
        TextAreaComponent,
        TextInputComponent,
    ],
    imports: [
        CommonModule,
        FormsModule
    ]})
 export class IronFrameworkModule { }

當我對庫進行擴容/打包時,然后將其安裝在其他一些有角度的應用程序中,我仍然需要在Application AppModule中導入FormsModule,以使IronLibrary中的組件正常工作。

這是為什么?

一個Module才能被看到和被別人利用Module ,它必須在@NgModule類裝飾進口,而且只對模塊可見的,所以你的情況FormModule才可見IronFrameworkModule ,而不是由可見AppModule 。然后有兩個選擇:

  1. 就像您所做的一樣:將FormModule導入到FormModule以便AppModule現在可以看到AppModule

  2. IronFrameworkModule導出FormModule ,以便無論哪個Module導入IronFrameworkModuleFormModule也將對他們可見以供使用

另外,您應該創建一個包含所有模塊,組件,指令...的Shared Module這些模塊將被重用。 然后,您只需要將該模塊導入其他模塊即可,它將代碼集中化,因此更易於維護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM