重新导出嵌套模块

时间:2016-11-10 21:56:05

标签: angular angular2-modules

我有一个Angular 2项目,结构如下:

/app
    app.component.ts
    app.module.ts
    /shared
           shared.module.ts
           /layout
           /utilities
                     utilities.module.ts
                     /icon
                          icon.component.ts
                     /message
                             message.module.ts
                             message.component.ts <----Problem here

在utilities.module.ts中,我导入图标组件,声明并导出它。 在共享模块中,我导入实用程序模块并将其导出。 在app模块中,我导入了共享模块。在我想要的应用程序组件中 使用我的图标组件,但我收到错误:'app-icon' is not a known element:

重新导出这样的模块/组件是否可行? 如果没有,是将实用程序模块直接导入应用程序模块的唯一选择吗?

编辑: 我注意到抱怨app-icon组件不可用的模块/组件/模板是消息组件。我试图将图标组件直接导入到消息组件中,但它仍然抱怨图标组件不可用。

1 个答案:

答案 0 :(得分:0)

  

编辑:我注意到抱怨app-icon组件不可用的模块/组件/模板是消息组件。我试图将图标组件直接导入到消息组件中,但它仍然抱怨图标组件不可用。

组件/指令/管道不会从父模块继承,即MessageModule没有通过AppModule获得任何内容。 MessageModule需要通过导入包含这些项的模块来提供对所需外部项的访问。所以你可能只需要imports: [ UtilitiesModule ]进入MessageModule,这样就不会引起错误。

如果MessageModule中有UtilitiesModule,则可能会导致circurlar依赖错误。我不确定。在这种情况下,您可能需要重组。