使用组件和服务创建模块

时间:2017-11-28 08:38:34

标签: angular typescript ionic3 angular-components angular5

我目前正在开发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应用程序中重用它,那么在何处放置组件及其服务(用于兄弟通信)?

1 个答案:

答案 0 :(得分:0)

你不需要重新发明轮子。有一个Ionic accordion组件,您可以使用Ionic 3 app。

这是Ionic Accordion

问:

  

在哪里放置组件和它服务(用于兄弟通信)if   我希望能够在其他Ionic / Angular应用程序中重用它吗?

Ionic有一个非常简单的答案。您只需使用此provider CLI创建ionic generate provider MyAccordion即可。就是这样。