我目前正在开发Ionic 3应用程序。在这种情况下,我需要像NgBootstrap那样的手风琴组件,但Ionic框架不提供这样的组件。所以我决定自己实施一个,这是继续学习Angular 5的好机会。
为了澄清我的问题的上下文,你需要知道我的组件是通过这个文件树定义的:
components/
my-accordion/
my-accordion.component.html
my-accordion.component.css
my-accordion.component.ts
my-accordion.service.ts
实际上,我需要一个特定的服务来允许我的组件的所有实例之间的通信。因为当我打开手风琴的一个项目时,我希望另一个自动关闭,一次只打开一个项目。我不知道这是否是正确的方法,但它似乎与RxJS库兼容。
无论如何,正如您所看到的,我的手风琴的定义取决于组件和服务。没有这项服务,我的手风琴就不能很好地运作。问题是我想将它放在一个模块中,我可以与其他应用程序共享,以便能够重复使用我的手风琴。
我的第一个想法就是把它放在SharedModule
中,但ngModules FAQs明确地说:
由于解释的原因,SharedModule不应该有提供程序 先前。它也不应该是任何进口或再出口的NgModules 有提供者。
读完之后,我的第二个想法就是将我的手风琴放在CoreModule
中,但是文档再次明确地说:
考虑使CoreModule成为没有的纯服务模块 声明。
因此我的问题:如果我希望能够在其他Ionic / Angular应用程序中重用它,那么在何处放置组件及其服务(用于兄弟通信)?
答案 0 :(得分:0)
你不需要重新发明轮子。有一个Ionic accordion
组件,您可以使用Ionic 3
app。
问:强>
在哪里放置组件和它服务(用于兄弟通信)if 我希望能够在其他Ionic / Angular应用程序中重用它吗?
答强>
Ionic
有一个非常简单的答案。您只需使用此provider
CLI
创建ionic generate provider MyAccordion
即可。就是这样。