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

问题描述:

在我的Angular 2项目中,我希望兄弟组件之间的事件通信,我已阅读了一些文章,并在此主题上关注了一些关于此问题的stackoverflow上的问题,现在终于使用了服务使用RXJS如answer中提到的,这是很好的解决方案。Angular 2:在兄弟组件之间发射的事件

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

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

我有三个组成部分AuthComponentHomeComponentHeaderComponent。前两个组件在插座中渲染,最后一个组件具有自己的元素/选择器fds-header。因此,无论组件在插座中呈现的都是HeaderComponent的兄弟。在HeaderComponent有一个注销按钮,注销功能在AuthComponent。我从HeaderComponent发出事件,并在AuthComponent中接收。问题是,当用户成功登录然后当我刷新页面应用程序被重新初始化,他将被重定向到HomeComponentHomeComponent这个时候AuthComponent没有建立这样的注销不起作用,因为只有一个用户在AuthComponent不可用。所以我的问题是我如何处理这种情况?

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

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