我正在使用Angular 5。
我有一个名为PostLoginPartnersModule
的模块,其中有一个名为SearchUsersComponent
的组件和另一个模块ListingUsersModule
。我想用
SearchUsersComponent
中存在的组件中的ListingUsersModule
。
我遇到错误:
core.js:1448错误错误:未被捕获(承诺):错误:类型SearchUsersComponent是2个模块的声明的一部分:PostLoginPartnersModule和ListingUsersModule!请考虑将SearchUsersComponent移到导入PostLoginPartnersModule和CareGroupModule的更高模块。您还可以创建一个新的NgModule,以导出并包含SearchUsersComponent,然后在PostLoginPartnersModule和ListingUsersModule中导入该NgModule。 错误:SearchPatientComponent类型是2个模块的声明的一部分:PostLoginPartnersModule和ListingUsersModule!请考虑将SearchUsersComponent移至更高的模块,该模块将导入PostLoginPartnersModule和ListingUsersModule。您还可以创建一个新的NgModule,该NgModule导出并包括SearchPatientComponent,然后在PostLoginPartnersModule和ListingUsersModule中导入该NgModule。
答案 0 :(得分:3)
仅在单个模块中声明Component
。导入声明此Component
的模块并将其导出到使用它的模块中。因此,在这种特定情况下,ListingUsersModule
应该导入PostLoginPartnersModule
。 ListingUsersModule
不应重新声明SearchUsersComponent
。
从设计的角度来看,将PostLoginPartnersModule
导入ListingUsersModule
可能没有意义。在这种情况下,使第三个模块声明并导出SearchUsersComponent
(和其他共享组件),然后将该模块导入其他两个模块中。
我建议不要在其他模块的目录中包含带有模块的目录。这可能会造成混淆。