我在模块A中的一个组件DialogComponent中使用了一个指令DialogHostDirective。它用于模块A中正常工作的ng-template标签。 该指令具有一个ViewContainerRef,用于在组件中插入模板。
我正在尝试在模块B中使用DialogComponent,它给我一个错误:
错误中的错误:无法确定C语言中DialogHostDirective类的模块:/Users/jitdagar/Desktop/TDP/pwt-ui-common/src/app/components/dialog/dialog-host.directive.ts !将DialogHostDirective添加到NgModule以修复它。
模块A的app.module
@NgModule({
declarations: [
AppComponent,
ExampleComponent,
DialogComponent,
DialogHostDirective,
OpenDialogContentComponent
],
imports: [
CommonModule,
FormsModule,
HttpModule,
ReactiveFormsModule,
BrowserModule,
AlloyModule,
MatDialogModule,
BrowserAnimationsModule
],
entryComponents: [
DialogComponent,
OpenDialogContentComponent
],
providers: [
DialogService
],
exports: [ExampleComponent, DialogComponent, DialogHostDirective],
bootstrap: [AppComponent]
})
export class PwtUiCommonModule {}
我没有在模块B中声明任何组件,因为它们已在模块A中声明。
答案 0 :(得分:0)
您需要在exports
模块声明数组中导出要在其他模块中使用的所有组件/指令。
我相信添加exports: [ExampleComponent, DialogComponent, DialogHostDirective],
以及可能的其他必需组件可以解决您的问题。
请参阅角度文档:How to declare feature modules
答案 1 :(得分:0)
就我而言,我看到了很多这样的错误,但查看最主要的错误时,它说:
src / app / app.module.ts(72,10)中的ERROR:'AppModule'模板编译期间出错 引用未导出的函数。
我刚刚将export
添加到了它指向的函数中。解决此问题后,所有其他错误(包括此Error : Cannot determine the module for class
)都消失了。
您的情况可能有所不同,但是请先查看最上面的错误,因为这可能是导致模块无法正确加载的问题的根本原因。