Angular 2:兄弟组件之间的事件发射

Angular 2: event emitting between sibling component

在我的 Angular 2 项目中,我想在同级组件之间进行事件通信,我已经阅读了一些文章并在 Whosebug 上关注了关于这个主题的一些问题,现在我终于使用了 SERVICES EMITTING EVENTS使用 RXJS 中提到的 这是一个很好的解决方案。

但是我有以下情况。 这是我的 AppComponent html.

<section class="app content-area">
  <fds-header></fds-header>
  <router-outlet></router-outlet>
</section>

我有三个组件 AuthComponentHomeComponentHeaderComponent。前两个组件在插座中呈现,最后一个组件有自己的 element/selector fds-header。因此,无论在 outlet 中呈现什么组件都是 HeaderComponent 的兄弟组件。在 HeaderComponent 中有一个注销按钮,注销功能在 AuthComponent 中。我从 HeaderComponent 发出事件并在 AuthComponent 中捕获。问题是当用户成功登录然后他被重定向到 HomeComponentHomeComponent 当我刷新页面应用程序被重新初始化并且这次 AuthComponent 未创建,因此注销不起作用,因为 AuthComponent 中只有一个订阅者不可用。所以我的问题是我该如何处理这种情况?

虽然登录需要组件,但您可以使用服务调用实现注销,而无需组件。

在这种情况下,订阅者将不是 AuthComponent,而是 AuthService,它会在注销结束时再次导航到登录页面。