Angular NgModule中的declarations和exports定义

551 阅读1分钟

我在app.component.ts的template文件里试图使用另一个Component时,遇到如下错误消息:

app-parent-child is not a known element:

在parent.module.ts定义里,检查exports区域里是否包含了selector app-parent-child对应的Angular Component:ParentChildComponent:

declarations: 定义了该NgModule的组成部分:Components, directives和pipe等。

imports:

module的imports里能导入其他module,这些被导入的module的declarations的Component也可以在发起导入的module里被使用了:

例子:

AppModule导入了ParentModule,因此其能使用后者export区域暴露的Component:

exports:

假设module A 导入了module B,则module A的declarations区域的所有Component,能使用module B的exports区域定义的Component:


父子关系有一种特点,当它在子池子找不到它的依赖性,它会去父池子里面找,这也解释了为什么在Module中Provider的东西,你在Module当中的Component也能用,而且在父组件中Provider的东西,子组件也能用。

更多Jerry的原创文章,尽在:“汪子熙”: