Angular:模块导出不会增加

时间:2019-08-21 08:40:24

标签: angular

请考虑以下模块结构:

page-content.module.ts

@NgModule({
    declarations: [
        PageContentComponent
    ],
    exports: [
        PageContentComponent
    ],
    imports: [
        CommonModule,
    ],
})
export class PageContentModule { }

markup.module.ts

@NgModule({
    imports: [
        PageContentModule,
    ]
})
export class MarkupModule { }

所以我有 MarkupModule ,它导入了 PageContentModule ,并最终导出了 PageContentComponent

现在,我将与 PageModule 一起创建一个新的 PageComponent 组件,我想在其中使用 PageContentComponent

page.module.ts

@NgModule({
  declarations: [PageComponent],
  bootstrap: [PageComponent],
  imports: [
    CommonModule,
    MarkupModule,
  ]
})
export class PageModule { }

这是一个问题,通过导入 MarkupModule ,我假定还将导入 PageContentModule 及其 exports 选项。但这没有发生,编译器说

  

“页面内容”不是已知元素

而且我必须导入 PageContentModule

问题是-我是否弄错了,应该是这样,还是代码中有错误。我的意思是,如果导入 MarkupModule -所有子模块也都应该导入,从而暴露所有导出的组件。

1 个答案:

答案 0 :(得分:2)

您应该通过以下导出方式在MarkupModule中导出PageModule:[.....,PageModule] 因为每个模块都有自己的作用域,并且默认情况下不会重新导出其他模块。