我在angular2中有一个AuthService。当用户点击退出按钮时。我想要向特定组件发送信号,即: home.ts 和 app.component.ts 用户已注销。
我的主要目标是使用登录按钮而非个人资料照片按钮更新页面。
是否可以从AuthService(onchange)向特定组件发送触发器?
亲切的问候, KAB
答案 0 :(得分:2)
通常在类似情况下,我使用通过依赖注入在所有组件之间共享的会话服务。
会话服务实现了Pankaj指出的Subject
(Observable
)。
对主题感兴趣的任何组件都需要注入会话服务,然后订阅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);
}
}
我希望这会有所帮助