将一个组件从模块导入到另一个模块的组件

时间:2018-07-22 12:51:07

标签: angular module

我使用的是角度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

的内容

2 个答案:

答案 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 {
}