我只是将angular2-app
更新为新RC5
。我走得很远,一切似乎都没问题,但现在我想把它重新组织成NgModules
并遇到一件事:
我在不同模块中的多个其他组件(比如ModuleA& ModuleB)中使用了一个组件(" ComponentA")。
一旦使用它,我得到一个:
Uncaught Type ComponentA是其中的一部分 2个模块的声明:ModuleA和ModuleB!
错误。
据我所知,解决这个问题的唯一方法就是使用Shared-Module
和我所有常见的东西,是吗?或者是否有更简单的方法来跨模块共享组件?
提前致谢:)
答案 0 :(得分:23)
您必须为共享组件创建一个模块,并将此模块导入您要使用此组件的位置。
正如错误消息所示,组件(或指令或管道)只能在一个模块的directives
中列出。
如果要重复使用,则需要将包含它的模块添加到要使用它的模块的@NgModule({imports: [...]})
。
答案 1 :(得分:3)
我创建了一个包含所有共享组件的模块。
这使得在我的其他模块中导入它变得更加容易。
专业提示:将路由放入您的模块中,然后尝试 - 只是为了好玩 - 让其中一个延迟加载。
然后你会想:" whoaaaaa模块是cooooolllll"
答案 2 :(得分:3)
您必须使用共享模块。
存在SharedModule,以使常用的组件,指令和管道可用于许多其他模块中的组件模板。
你必须出口&将它导入到你想要的其他模块中。
有关详细信息,请参阅链接shared module