簡體   English   中英

將模塊A導入模塊B,但是A已經導入了模塊B angular

[英]Import module A into module B, but A has already imported module B angular

我有兩個模塊User 和 Product 為了使用 ProductListComponent,用戶模塊已經導入了產品模塊。 現在我想從產品模塊中的用戶模塊導入/使用 UserListComponent。 但是在產品模塊中導入用戶模塊時會引發循環依賴錯誤。 有沒有辦法使用其他模塊中的每個模塊,以便我的邏輯始終保留在其相應的模塊中,但我可以重用它的功能?

我在想有一個通用/共享模塊,它可以導入其中的所有其他模塊,然后共享模塊被所有其他模塊導入,所以這將使我的所有模塊都可以相互使用。 但是這樣做會引發一個循環依賴錯誤,這確實是一個有效的錯誤。

產品模塊

@NgModule({
  declarations: [ProductListComponent],
  imports: [
    CommonModule,
    ProductRoutingModule,
  ], exports: [ProductListComponent]
})
export class ProductModule { }

用戶模塊

@NgModule({
  declarations: [UserListComponent],
  imports: [
    CommonModule,
    UserRoutingModule,
    ProductModule
  ], exports: []
})
export class UserModule { }

我嘗試使用共享模塊,它看起來像

@NgModule({
  declarations: [],
  imports: [
    CommonModule,
    UserModule,
    ProductModule
  ], exports: []
})
export class SharedModule { }

產品模塊

@NgModule({
  declarations: [ProductListComponent],
  imports: [
    CommonModule,
    ProductRoutingModule,
    SharedModule
  ], exports: [ProductListComponent]
})
export class ProductModule { }

用戶模塊

@NgModule({
  declarations: [UserListComponent],
  imports: [
    CommonModule,
    UserRoutingModule,
    SharedModule
  ], exports: []
})
export class UserModule { }

請幫助我找到一種方法來共享應用程序中所有其他模塊的所有模塊,以避免代碼重復或使應用程序設計獨立。

    you need to register that shared module to app.module like this

    App Module



  @NgModule({
      declarations: [],
      imports: [
        SharedModule
      ], exports: []
    })
    export class AppModule { }

    And shared module should look like this


  @NgModule({
      declarations: [ProductListComponent,UserListComponent],
      imports: [
        CommonModule,
        UserModule,
        ProductModule
      ], exports: []
    })
    export class SharedModule { }

 Now you can able to use all the modules
 please don't import modules multiple times

在應用模塊文件中導入SharedModule

艾哈邁德,從不建議/要求導入共享模塊中的每個模塊。共享模塊用於保留許多模塊(如頁眉(導航欄)、頁腳、側邊欄等)所需的組件、指令等。

在您的情況下,理想情況下,如果各種組件(可重用性)需要相同的功能,那么您應該制作一個通用組件/指令,該組件/指令可以保存在共享模塊中,然后 SharedModule 可以導入到 FeatureModule(在您的情況下為用戶/產品)。

  • 如果功能不常見,則僅導出特定組件(ProductListComponent)並在所需模塊(UserModule)中導入該組件的模塊(ProductModule),反之亦然(ProductModule中的UserListComponent)

如果在每個模塊中都導入每個模塊,使用 Angular 有什么用。而且,優化將受到嚴重影響!

暫無
暫無

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

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