最佳答案
我试图返回一个可观察的时候,我得到了一个订阅者的某个值,但是我失败了。
这是密码:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> {
// get route to be activated
this.routeToActivate = route.routeConfig.path;
// get user access levels
return this._firebase.isUserAdmin <-- returns Subscription, not Observable
.map(user => user.access_level)
.subscribe( access => {
// I need to return an observable here
});
}
在角度2的可观测物上没有太多的资源,所以我不知道从哪里开始。有人能帮忙吗?
更新-> 工作版本
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> {
// get route to be activated
this.routeToActivate = route.routeConfig.path;
// get user access levels
return this._firebase.isUserAdmin
.map(user => {
let accessLevel = user.access_level;
if (accessLevel === 'admin' ) {
return true;
}
}).first();
}