2017-01-02 106 views
0

在我的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不可用。所以我的問題是我如何處理這種情況?

回答

1

登錄需要組件時,您可以使用服務調用來實現註銷,而無需組件。

在這種情況下,訂戶不會是AuthComponent,而是AuthService,它在註銷結束時會再次導航到登錄頁面。