Angular2 RC5在模块之间共享组件

时间:2016-08-10 16:56:00

标签: angular

我只是将angular2-app更新为新RC5。我走得很远,一切似乎都没问题,但现在我想把它重新组织成NgModules并遇到一件事: 我在不同模块中的多个其他组件(比如ModuleA& ModuleB)中使用了一个组件(" ComponentA")。

一旦使用它,我得到一个:

  

Uncaught Type ComponentA是其中的一部分   2个模块的声明:ModuleA和ModuleB!

错误。

据我所知,解决这个问题的唯一方法就是使用Shared-Module和我所有常见的东西,是吗?或者是否有更简单的方法来跨模块共享组件?

提前致谢:)

3 个答案:

答案 0 :(得分:23)

您必须为共享组件创建一个模块,并将此模块导入您要使用此组件的位置。

正如错误消息所示,组件(或指令或管道)只能在一个模块的directives中列出。

如果要重复使用,则需要将包含它的模块添加到要使用它的模块的@NgModule({imports: [...]})

答案 1 :(得分:3)

我创建了一个包含所有共享组件的模块。

这使得在我的其他模块中导入它变得更加容易。

专业提示:将路由放入您的模块中,然后尝试 - 只是为了好玩 - 让其中一个延迟加载。

然后你会想:" whoaaaaa模块是cooooolllll"

答案 2 :(得分:3)

您必须使用共享模块。

存在SharedModule,以使常用的组件,指令和管道可用于许多其他模块中的组件模板。

你必须出口&将它导入到你想要的其他模块中。

有关详细信息,请参阅链接shared module