Ich verwende beobachtbar und EventEmitter Sie den vollständigen Code sehen: http://plnkr.co/edit/HV2sWd?p=previewCanActivate Observable <boolean> funktioniert nicht oder EventEmitter.asObservable()? Angular2
Selbst mit publishReplay es funktioniert nicht :(
Ich vermute, dass der EventEmitter.asObservable()
Was ich vermisse
auth-service.ts:
@Injectable()
export class AuthService {
private _isLoggedIn: boolean = false;
private _isLoggedInEvent: EventEmitter<boolean>;
private _isLoggedInObservable: Observable<boolean>;
constructor(){
this._isLoggedInEvent = new EventEmitter<boolean>();
this._isLoggedInObservable = this._isLoggedInEvent.asObservable().publishReplay(1);
this._isLoggedInEvent.emit(false);
}
login() {
return Observable.of(true).delay(1000).do(val =>{
this.isLoggedIn = true;
this.isLoggedInEvent.emit(true);
});
}
logout() {
this.isLoggedIn = false;
}
isLoggedInObservable() : Observable<boolean> {
return this._isLoggedInObservable;
}
}
Ihr Plunker Code scheint genug, um nicht arbeiten, um den Code zu testen, die Sie gebucht haben. – StriplingWarrior