![](/img/trans.png)
[英]WEBPACK_IMPORTED_MODULE_0__angular_core__.B is not a constructor
[英]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(在您的情況下為用戶/產品)。
如果在每個模塊中都導入每個模塊,使用 Angular 有什么用。而且,優化將受到嚴重影響!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.