鉴于此应用程序结构:
所以我需要创建一个“共享组件”,我知道它只是在模块1和模块2之间共享,不能在其他任何地方使用。我应该将其创建为普通的共享组件吗?
提前致谢。
答案 0 :(得分:1)
如果您不将共享模块添加到其他模块的imports数组中,那么这些组件将不会与其他模块共享。
例如:
我的ProductModule在其导入中包含SharedModule:
@NgModule({
imports: [
SharedModule,
RouterModule.forChild([...])
],
declarations: [
ProductListComponent,
ProductDetailComponent,
ProductEditComponent,
],
providers: [
ProductService
]
})
export class ProductModule { }
因此,只有产品模块的组件才能访问共享模块的组件。
任何不应使用共享模块的模块都不要将其添加到导入数组中。
答案 1 :(得分:0)
DeborahK的答案是正确的,但根据你的评论,我相信你并没有真正理解,所以这里有进一步的阐述。
要在模块1和模块2之间共享组件,您必须创建共享模块。在共享模块的exports
数组中,您将导出要共享的组件。现在,在模块1和模块2的imports
数组中,您将导入共享模块。这样,导出的组件将可用于模块1和模块2。
您的应用结构看起来像这样。
在shared.module.ts
中,您有类似的内容。
exports: [SharedComponent]
在module1.ts
和module2.ts
中,您也有类似的内容。
imports:[SharedModule]