2016-11-19 129 views
-1

我在angular2中有一個AuthService。當用戶點擊註銷按鈕時。我想發送一個信號給特定組件,例如:home.tsapp.component.ts用戶註銷。從服務發送觸發到組件

我的主要目標是更新頁面,使用登錄按鈕而不是配置文件照片按鈕。

是否可以從AuthService(onchange)向特定組件發送觸發器?

親切的問候, KAB

+2

你可以考慮使用'Subject'(可觀察)的&無論你想。在流的任何更新可以自梳所有用戶訂閱其 –

回答

1

通常在類似情況下我使用通過依賴注入的所有組件之間共享的會話服務

正如Pankaj指出的那樣,會話服務執行SubjectObservable)。

對Subject感興趣的任何組件需要注入會話服務,然後訂閱Observable

是需要告知事件的任何組件,需要有注入會話服務,並使用Observable通過next()方法來觸發事件。

SessionService例如:

import { Injectable } from '@angular/core'; 
import { BehaviorSubject } from 'rxjs/BehaviorSubject'; 

@Injectable() 
export class SessionService { 
    private sessionDisable: boolean; 
    private _sessionDisable = new BehaviorSubject<boolean>(false); 

    constructor() { } 

    disableSession() { 
    this.sessionDisable = true; 
    this._sessionDisable.next(true); 
    } 
    enableSession() { 
    this.sessionDisable = false; 
    this._sessionDisable.next(false); 
    } 
} 

我希望這有助於

+0

Picci,謝謝你的回答。是否可以提供示例代碼或共享您的會話服務? – kabus

+0

感謝Picci,我會試試看。 – kabus