我最初尝试在两个模块中包含一个共享组件作为声明。
BatchStatusComponent是2个模块声明的一部分:DashboardModule和ControlJobModule!请考虑搬家......
所以我试图创建一个共同的@NgModule,
我已经宣布了一个共同的模块:
@NgModule({
imports: [
CommonModule,
FormsModule
],
declarations: [
BatchStatusComponent // moved to here
]
})
export class SharedComponentsModule { }
我已将上述模块包含在子模块中,如下所示
@NgModule({
imports: [
SharedComponentsModule, // added module
DashboardRoutingModule,
CommonModule,
FormsModule,
ChartsModule,
BsDropdownModule
],
providers: [DashboardApiService, IntegrationSignalService],
declarations: [
DashboardComponent,
// BatchStatusComponent, // removed from here.
ServiceStatusComponent,
StatisticsCounterComponent,
ClearingDashboardComponent
]
})
export class DashboardModule {
}
但我现在收到此错误:
无法绑定到批处理状态'因为它不是批处理状态的已知属性'。
我缺少什么?
当组件作为声明包含时(在DashboardModule
中)它可以正常工作。
答案 0 :(得分:5)
如果您希望其他模块看到它,您还需要导出组件:
@NgModule({
imports: [
CommonModule,
FormsModule
],
declarations: [
BatchStatusComponent // moved to here
],
exports: [
BatchStatusComponent
]
})
export class SharedComponentsModule { }
仅供参考,您还可以导出整个模块(即CommonModule),以便下游也可以使用。