我使用的是角度6,并且有一个media
模块。我想导入MediaComponent
(在MediaModule
中导出),但出现此错误:
media.module"' has no exported member 'MediaComponent'.
这是MediaModule声明:
@NgModule({
imports: [
CommonModule,
MediaRoutingModule,
MaterialModule
],
declarations: [LayoutComponent, MediaComponent],
exports: [
MediaComponent,
CommonModule
]
})
这是另一个模块声明:
@NgModule({
imports: [
CommonModule,
MaterialModule,
FormsModule,
EM,
EditorRoutingModule,
MediaModule
],
declarations: [ListComponent, CreateComponent, AddimageComponent]
})
来自另一个模块(EditorModule
)中的组件,这是我的导入:
import { MediaComponent } from '@app/views/media/media.module';
我例外。
注意::当我在media directive
上的组件中使用EditorModule
时,它会工作。例如
<app-media></app-media>
显示MediaComponent
答案 0 :(得分:4)
确保media.module.ts
导出MediaComponent
类。
export { MediaComponent } from 'path/to/media.component';
答案 1 :(得分:2)
您需要从Angular和JavaScript方面从MediaModule导出MediaComponent,这是不同的事情。
您已经通过在模块的@NgModule装饰器的'exports'部分添加了Angular意义上的组件,但是您还需要在模块文件的末尾添加export {MediaComponent}
,以便{ {1}}将起作用。
此外,您不应该从模块中导出另一个模块-您应该从MediaModule的“导出”部分中删除“ CommonModule”。
因此,更改
import { MediaComponent } from '@app/views/media/media.module';
收件人:
@NgModule({
imports: [
CommonModule,
MediaRoutingModule,
MaterialModule
],
declarations: [LayoutComponent, MediaComponent],
exports: [
MediaComponent,
CommonModule
]
})
export class MediaModule {
}