我尝试将组件设为全局组件。但它给我一个错误:
Uncaught Error: Can't export directive LanguageComponent from SharedModule as it was neither declared nor imported!
因此,我将组件添加到shareModule中:
exports: [
LoaderComponent,
LanguageComponent
]
此外,我尝试将组件添加到core.module作为diclaration。它没有帮助。
ShareModule是:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LoaderComponent } from './loader/loader.component';
import {LanguageComponent} from "../language/language.component";
import {HiderPipe} from "../pipes/Hider";
@NgModule({
imports: [
CommonModule
],
declarations: [
LanguageComponent,
LoaderComponent,
HiderPipe
],
exports: [
LoaderComponent,
LanguageComponent,
HiderPipe
]
})
export class SharedModule { }
此模块仅在主core.module
中导入为:
@NgModule({
imports: [
SharedModule
],
答案 0 :(得分:2)
要使组件可用于导入SharedModule
的模块,您必须将LanguageComponent
添加到declarations
的{{1}}字段和{{{} 1}} field。
SharedModule
如错误所述,您错过了将其添加到声明字段:
未捕获错误:无法从 SharedModule 导出指令 LanguageComponent ,因为它既不是声明也不是导入 < / p>
或者,如果exports
已经是另一个模块的一部分(例如:@NgModule({
imports: [
// ...
],
declarations: [
// ...
LanguageComponent
],
exports: [
// ...
LanguageComponent
]
})
export class SharedModule {
// ...
}
),则必须导入该模块,并且还可以重新导出该模块。 < / p>
要在另一个组件中使用该组件(例如LanguageComponent
),您必须将LanguageModule
添加到该模块的导入字段中。
AppModule
通过选择器在组件的模板中使用它。另请参阅docs上的功能模块部分。
答案 1 :(得分:1)
您还需要添加声明数组。
declarations:[LanguageComponent]