我使用的是可觀察和EventEmitter你可以看到完整的代碼:http://plnkr.co/edit/HV2sWd?p=previewCanActivate Observable <boolean>不工作或EventEmitter.asObservable()? Angular2
即使使用publishReplay它不工作:(
我懷疑EventEmitter.asObservable()
什麼我失去了
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;
}
}
你plunker代碼似乎沒有足夠的工作來測試你已經發布的代碼。 – StriplingWarrior