0
我開發的應用程序在angular2破壞/退訂廣播消息的事件,在這裏我用的消息廣播從一個組件更新數據等。在組件的一個如何angular2
這裏是代碼, message_event.ts
import {Injectable} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import {Broadcaster} from './broadcaster';
@Injectable()
export class MessageEvent {
constructor(private broadcaster: Broadcaster) {}
fire(data: string): void {
this.broadcaster.broadcast(MessageEvent, data);
}
on(): Observable<string> {
return this.broadcaster.on<string>(MessageEvent);
}
}
broadcaster.ts
import {Subject} from 'rxjs/Subject';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
interface BroadcastEvent {
key: any;
data?: any;
}
export class Broadcaster {
private _eventBus: Subject<BroadcastEvent>;
constructor() {
this._eventBus = new Subject<BroadcastEvent>();
}
broadcast(key: any, data?: any) {
this._eventBus.next({key, data});
}
on<T>(key: any): Observable<T> {
return this._eventBus.asObservable()
.filter(event => event.key === key)
.map(event => <T>event.data);
}
}
我已經註冊/認購本次活動。
ngOnInit() {
// this.registerStringBroadcast();
this.registerTypeBroadcast();
this.loadId();
}
registerTypeBroadcast() {
this.message_event.on().subscribe(message => {
// alert("true");
this.isUserLogin = true;
this.loadId();
})
在這裏我需要檢查事件是否已經註冊或不。 或者 有什麼辦法來破壞/退訂此消息事件。
請幫我郵寄上面。
在此先感謝。