将服务触发器发送到组件

时间:2016-11-19 08:20:25

标签: angular ionic2

我在angular2中有一个AuthService。当用户点击退出按钮时。我想要向特定组件发送信号,即: home.ts app.component.ts 用户已注销。

我的主要目标是使用登录按钮而非个人资料照片按钮更新页面。

是否可以从AuthService(onchange)向特定组件发送触发器?

亲切的问候, KAB

1 个答案:

答案 0 :(得分:2)

通常在类似情况下,我使用通过依赖注入在所有组件之间共享的会话服务

会话服务实现了Pankaj指出的SubjectObservable)。

对主题感兴趣的任何组件都需要注入会话服务,然后订阅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);
  }
}

我希望这会有所帮助