2

我有一个具有以下结构的 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

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

是否可以重新导出这样的模块/组件?如果不是,将实用程序模块直接导入应用程序模块的唯一替代方法是什么?

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

4

1 回答 1

1

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

组件/指令/管道不会从父模块继承,即MessageModule不会通过AppModule. MessageModule需要通过导入包含这些项目的模块来提供对其所需的任何外部项目的访问。所以你可能只是imports: [ UtilitiesModule ]进入MessageModule, 并且应该不会引发错误。

如果你有MessageModule内部UtilitiesModule,这可能会导致循环依赖错误。我不知道。在这种情况下,您可能需要重组。

于 2016-11-11T00:27:40.247 回答